TIL30.DOM
ドームドーム🎵 🐟 🐠 🐡 htmlとjsをより近づけるDOMの役割と使い方を理解してみましょう.
ドキュメントオブジェクトモデル(Document Object Model,DOM)は、ブラウザがHTMLページを認識するように階層化し、ツリー構造を形成するオブジェクトモデルである.
簡単に言えば,オブジェクト化されたモデルにより,HTMLページとjsが相互接続する役割を果たす.
document.getElementsByTagName(「name」):tag名を使用して要素を読み込みます.
document.getElementsByClassName(「class」):class名を使用して要素を読み込みます.
element.attribute=newvalue:属性値を変更します.
element.style.property=newstyle:要素スタイルを変更します.
document.removeChild(element):要素を削除します.
document.appendChild(element):要素を追加します.
document.置換Child(new,old):要素を置換します.
このプログラムでは、ユーザーが任意の操作を実行すると、指定したイベントがトリガーされます.イベントの種類が多いので、必要なときに探してみたほうがいいです.
error:ブラウザでjsエラーが発生したか、リソースが要求されていません.
スクロール:ユーザーがページをスクロールするとき
onkeypress:実際に文字を書き込む場合
onkeyup:ユーザーがキーボードを離れたとき
mouseup:マウスボタンを離すと
mousedown:マウスクリック時
mouseover:マウスを要素の上に移動すると
mouseout:マウスがエレメント外に移動したとき
submit:ユーザーがキーを使用してフォームを提出する場合
「両方ともhtml要素をロードしてjsに接続できます.」「なぜ2つは必要なのか」好奇心から違いを知った.
HTML Collectionでは、DOMでの変更を動的にリアルタイムで変更します.
NodeListは静的なので、DOMの変更要素はリアルタイムでは変更されません.
0番目のインデックスに近づき、「a」を「b」に変更します.その後i増減してindex 1号を探し,リアルタイム変更により0号を除く他の2つの要素のうち2番目がindex 1となる.
これらの問題を解決するにはquerySelectorを使用します.
2つの方法は、指定されたイベントが発生したときに関数を実装します.
onclickではコールバックは1つしか指定できませんが、addEventListenerでは複数のイベントリスナーを追加できます.
DOMの定義
ドキュメントオブジェクトモデル(Document Object Model,DOM)は、ブラウザがHTMLページを認識するように階層化し、ツリー構造を形成するオブジェクトモデルである.
簡単に言えば,オブジェクト化されたモデルにより,HTMLページとjsが相互接続する役割を果たす.
HTML DOMメソッドと構成
html要素の読み込み
document.getElementById(「id」):id名を使用して要素を読み込みます.document.getElementsByTagName(「name」):tag名を使用して要素を読み込みます.
document.getElementsByClassName(「class」):class名を使用して要素を読み込みます.
html要素の置換
element.innerHTML=new htmlコンテンツ:要素を新しいコンテンツに置き換えます.element.attribute=newvalue:属性値を変更します.
element.style.property=newstyle:要素スタイルを変更します.
要素の追加または削除
document.createElement(要素):要素を作成します.document.removeChild(element):要素を削除します.
document.appendChild(element):要素を追加します.
document.置換Child(new,old):要素を置換します.
<h1 class="test">Good Morning</h1>
<script>
const element = document.getElementById("test");
element.innerHTML = "Good Evening";
</script>
// "Good Morning"에서 "Good Evening"으로 바뀜.
DOMイベント
このプログラムでは、ユーザーが任意の操作を実行すると、指定したイベントがトリガーされます.イベントの種類が多いので、必要なときに探してみたほうがいいです.
UIイベント
load:Webロード完了時error:ブラウザでjsエラーが発生したか、リソースが要求されていません.
スクロール:ユーザーがページをスクロールするとき
キーボードイベント
onkeydown:ユーザーがすべてのキーを押すとonkeypress:実際に文字を書き込む場合
onkeyup:ユーザーがキーボードを離れたとき
マウスイベント
クリック:ユーザーが要素をクリックした場合mouseup:マウスボタンを離すと
mousedown:マウスクリック時
mouseover:マウスを要素の上に移動すると
mouseout:マウスがエレメント外に移動したとき
フォームイベント
input:input元素値が変化した場合submit:ユーザーがキーを使用してフォームを提出する場合
<h1 onclick="this.innerHTML='Ooops!'">Click on this text!</h1>
*getElement VS querySelector
「両方ともhtml要素をロードしてjsに接続できます.」「なぜ2つは必要なのか」好奇心から違いを知った.
getElement
HTML Collectionを返却するquerySelector
NoteListを返却する.(なんだよ…😳)HTML Collectionでは、DOMでの変更を動的にリアルタイムで変更します.
NodeListは静的なので、DOMの変更要素はリアルタイムでは変更されません.
<h1 class="a"></h1>
<h1 class="a"></h1>
<h1 class="a"></h1>
const htags = document.getElementByclassName('a');
for(i = 0; i < htags.length; i++) {
htags[i].className = 'b';
}
//결과는 "b,b,b"가 아닌 "b,a,b"가 나왔다.
<h1 class="b"></h1>
<h1 class="a"></h1>
<h1 class="b"></h1>
「live collection」だったので、こんな問題が出てきました.0番目のインデックスに近づき、「a」を「b」に変更します.その後i増減してindex 1号を探し,リアルタイム変更により0号を除く他の2つの要素のうち2番目がindex 1となる.
これらの問題を解決するにはquerySelectorを使用します.
*onclick VS addEventListener
2つの方法は、指定されたイベントが発生したときに関数を実装します.
onclickではコールバックは1つしか指定できませんが、addEventListenerでは複数のイベントリスナーを追加できます.
addEventListener
より感性のある開発者とされている.element.attachEvent('onclick', function() { /* do stuff here*/ });
element.addEventListener('click', function() { /* do stuff here*/ }, false);
Reference
この問題について(TIL30.DOM), 我々は、より多くの情報をここで見つけました https://velog.io/@jo_love/TIL30.DOMテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol