DOM
DOM
DOMはDocument Object Modelの略で、オブジェクトのようにHTML要素を操作できるモデルです.
DOMはプログラマーの視点から見たHTMLであり,ブラウザ環境でJSを用いてHTMLを操作できる.
1.スクリプト要素の場所
スクリプト要素の位置が重要なのは、Webブラウザが作成したコードを解釈する過程でスクリプト要素に遭遇した場合、WebブラウザがHTMLの解析を停止し、まずスクリプト要素を実行するため、スクリプト要素の位置設定が重要であるからです.
script要素の位置は、headタグまたはbodyタグが終了する前に入れる方法を代表します.
2つの方法の違いは、Webブラウザがコードを解釈する過程で異なることです.
script要素がheadラベルに表示されると、body部分のHTMLを解析する前にscript要素が最初に読み込まれ、開発者が予期せぬ事態に陥る可能性があります.
しかし、bodyラベルが終わる前にscript要素を無条件に入れるのも良い方法ではありません.
その理由は,scriptコンテンツが大きくHTMLコンテンツに直接作用するコードが少ないと仮定し,速度面ではbodyタグが終了する前にscript要素を入れるよりもheadタグに位置する方がよいからである.
2.Documentオブジェクト
DocumentオブジェクトはWebページそのものを表します.
Webページに存在するHTML要素にアクセスする場合は、Documentオブジェクトにアクセスする必要があります.
サブエレメントのクエリー方法
サブエレメントのクエリー方法にはchildNodesとchildrenがあります.
childNodes
document.조회하고자하는요소.childNodes
childNodesは、要素サブノードを含むNodeListを返します.NodeListには、要素ノードだけでなく、アノテーションノードなどの非要素ノードも含まれます.
children
document.조회하고자하는요소.children
childrenは、要素サブ要素を含むHTML Collectionを返し、すべての非要素ノードが除外されます.
親要素のクエリー方法
親の検索方法にはparentNodeとparentElementがあります.
parentNode
document.조회하고자하는요소.parentNode
parentNodeは、親ノードがない場合にドキュメントノードに戻ります.
すなわちparentNodeはhtml要素以外のドキュメントノードにもアクセスできます.
parentElement
document.조회하고자하는요소.parentElement
parentElementは、親ノードがない場合にnullを返します.
つまりparentElementはhtml要素からしか離れません.
3.Documentメソッド
Documentオブジェクトには、HTML要素に関連する操作の処理に役立つ方法がいくつかあります.
ここではCURDしか知りません.
Create
createElementは、新しいHTML要素を生成するための方法です.document.createElement("HTML요소")
createElementを使用して新しいHTML要素を生成できますが、HTMLでは表示されません.
これは、生成されたHTML要素がappendを介して必要な位置に入れなければならないためです.document.Element.append(생성된HTML요소)
Read
DOMを使用してHTML要素情報を照会する方法は多種多様であり、HTMLタグ、id、class、nameの属性値を使用して照会してもよいし、コレクタを使用してパラメータとして照会してもよい.
getElementByTagName
document.getElementByTagName("HTMLtag")
ラベル名のすべての要素をクエリーします.
getElementById
document.getElementById("Id")
IDの要素を問い合わせる.
getElementByClassName
document.getElementByClassName("Class")
クラス内のすべての要素をクエリーします.
getElementByName
document.getElementByName("Name")
name属性値のすべての要素をクエリーします.
querySelector
document.querySelector("Selector")
コレクタの最初の要素をクエリーします.
querySelectorAll
document.querySelectorAll("Selector")
コレクタ内のすべての要素をクエリーします.
Update
既存のHTMLタグの内容を変更したり、新しく生成されたHTMLタグにコンテンツを追加する方法としてはtextContent、innerText、innerHTMLがあります.
もう1つの方法は、classList、setAttribute用にHTMLタグのclassまたは属性および属性値を変更または追加することです.
textContent
textContentは、ノードが持つテキスト値を取得し、テキスト値を入力することで変更できるノードのプロパティです.
innerText
innerTextはElementのプロパティで、ユーザーに表示されるテキスト値をテキスト値を入力することで変更できます.
innerHTML
innerHTMLはElementのプロパティで、テキスト値を入力することでElementのHTML、XMLを変更できます.
classList
classList自体は読み取り専用ですが、追加および削除メソッドを使用して他の機能を実行できます.
document.조회하고자하는요소.childNodes
document.조회하고자하는요소.children
document.조회하고자하는요소.parentNode
document.조회하고자하는요소.parentElement
document.createElement("HTML요소")
document.Element.append(생성된HTML요소)
document.getElementByTagName("HTMLtag")
document.getElementById("Id")
document.getElementByClassName("Class")
document.getElementByName("Name")
document.querySelector("Selector")
document.querySelectorAll("Selector")
classList.add
Element.classList.add("Class")
classList.remove
Element.classList.remove("Class")
setAttribute
setAttributeは、HTML要素の選択した属性に属性値を指定する方法です.
Elemnet.setAttribute(name, value)
name:html要素のプロパティを設定するvalue:nameからの属性の属性値を設定する
DELETE
remove、removeChildはHTML要素を削除する方法です.
remove
Element.remove()
エレメントが属するツリーからエレメントを削除します.removeChild
サブエレメントの削除方法を指定します.
戻り値には、DOMからサブノードを削除し、削除したノードを返します.
戻り値が変数に保存されていない場合、削除ノードの参照は存在しないため、JSエンジンのGC(Garbage Collection)によって後でメモリから削除されます.
戻り値を変数に含めると、他のDOM位置に貼り付けて使用できます.
Node.removeChild(child)
child:DOMから削除するサブノードremoveとremoveChildの違い
removeとremoveChildは基本的に同じ機能で使用されますが、removeはメモリからノードを削除および終了しますが、removeChildはノードを削除しません.
このノードはメモリにまだ存在し、親ノードとは関係を切断し、DOMツリーから解放されます.
また、removeChildでは親別名が必要ですが、removeでは親別名は必要ありません.
4.イベント(イベント)
イベント(Event)とは、Webブラウザから通知されたHTML要素上でイベントが発生することを意味する.
Webページで使用されるJavaScriptは、これらのイベントに応答して特定の操作を実行できます.
Event Listener
イベントリスナーとは、イベント発生時に処理を担当する関数であり、イベントハンドラ(event handler)とも呼ばれる.(厳密には、機能は少し違いますが、機能は同じです)
指定したタイプのイベントがエレメント上で発生した場合、Webブラウザはそのエレメントに登録されたイベントリスナーを実行します.
イベントのタイプ
イベントはいろいろありますが、イベント前にonをつければいいです.
ここでは、代表的なマウスイベントとキーイベントのみを説明します.
マウスイベント
dblclclick:要素をダブルクリックする場合
mouseover:要素にマウスを置くと
mouseout:マウスが要素から離れると
mousemove:マウスを要素に移動すると
重要なイベント
keyup:キーが切れたとき
キー:キーを押したまま
イベントリスナーの登録方法
イベントリスナー登録方法には、イベントリスナーをPropertyとしてオブジェクトまたは要素に登録する方法と、イベントリスナーをオブジェクトまたは要素として渡す方法があります.
Propertyとしてオブジェクトまたは要素に登録します。
Element.on이벤트=function(){
이벤트에동작할코드
}
イベントリスナーをオブジェクトまたは要素に渡す方法。
Element.addEventListener(이벤트, function(){
이벤트에동작할코드
})
Reference
この問題について(DOM), 我々は、より多くの情報をここで見つけました https://velog.io/@ryurbsgks5114/DOMテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol