JS. DOM
DOM (The Document Object Model)
BOM (Brower Object Model)
DOMとは
一番上の
<html>
はルートディレクトリです<ノードタイプ>
ドキュメントノード
DOMツリーの開始点へのアクセス
要素ノード
HTML要素を表す
要素にはネストされた親子関係があり、親子関係によって情報を構造化します.
テキストノード
エレメントノードのサブノードであり、独自のサブノードを持たないHTMLエレメントを表すテキスト
属性ノード
HTML要素の属性を表す
操作DOM(CRUD)
(1)documentオブジェクトのcreateElementメソッドを使用してdiv要素を作成する
let comment = document.createElement("div");
comment.className = 'comment';
console.log(comment) // <div class="comment"></div>
(2)documnetオブジェクトのappendメソッドを用いて他のエンティティに挿入するdocument.body.append(comment)
textContentcomment.textContent = 'dev';
console.log(comment) // <div class="comment">dev</div>
classList.addcomment.classList.add('tweet')
console.log(commnet) // <div class='comment tweet'>dev</div>
1.要素へのアクセス
(1) document.getElementById(id)
要素ノードを
(2) document.getElementByClassName(class)
const elems = document.getElementsByClassName('red');
console.log([...elems]); // [li#one.red, li#two.red, li#there.red]
(4) document.querySelector(cssSelector)const oneTweet = document..querySelector('.tweet')
// querySelector로 클래스 이름이 tweet인 HTML 엘리먼트를 조회
(5) document.querySelectorAll(cssSelector)2.ナビゲーション
(1) parentNode
const elem = document.querySelector('#two');
elem.parentNode.className = 'blue'
(2) firstChild,lastChildelem.firstChild.className = 'blue';
elem.lastChild.className = 'blue';
に注意
ほとんどのブラウザでは、要素間のスペースまたは改行をテキストノードと見なします.
したがってfirstElementChild、lastElementChildを使用することができます
(3) hasChildNode()
(4) childNodes
const elem = document.querySelector('ul');
if (elem.hasChildNodes()) {
console.log(elem.childNodes);
console.log(elem.children);
}
innerHTML vs innerText vs textContent<div class="wrap">
This is fruit.
<span>banana</span>
<span>apple</span>
Fruit is delicious.
</div>
(1) innerHTMLElementのプロパティを使用して、ElementのHTML、XMLを取得または設定できます.
自分ではテキスト値のみを取得し、子供はテキストとタグ値を同時に取得します.
document.querySelector('.wrap').innerHTML;
結果This is fruit.
banana
apple
Fruit is delicious.
(2) innerText
このElementからユーザーの「表示」テキストの値を取得
自分と子のテキスト値のみを取得しますが、モデリング情報は取得しません.
document.querySelector('.wrap').innerText;
結果This is fruit. banana apple Fruit is delicious.
(3) textContent
改行やスペースなどのスタイル情報を同時にインポート
document.querySelector('.wrap').textContent;
結果This is fruit.
banana
apple
Fruit is delicious.
Reference
この問題について(JS. DOM), 我々は、より多くの情報をここで見つけました https://velog.io/@tastestar/DOMテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol