210426. Today I Learned(TIL) : DOM
DOMは、javascriptを使用してエンティティの属性値を取得または変更します。
<HTML>
<body>
<div id="practice" class="highlight red">
여기 엘리먼트가 하나 있습니다
<span>자식도 있습니다</span>
<span>자식도 여럿 있습니다</span>
</div>
</body>
<HTML 엘리먼트를 JavaScript 객체로 표현>
{
tagName: 'DIV',
id: 'practice',
classList: ['highlight', 'red'],
textContent: '여기 엘리먼트가 하나 있습니다 자식도...',
parentElement: body,
children: [
{
tagName: 'SPAN',
textContent: '자식도 있습니다'
},
{
tagName: 'SPAN',
textContent: '자식도 여럿 있습니다'
}
]
}
Domの作成、適用、読み取り、更新、削除(CARUD)
const newDiv = document.createElement('div')
しかし、createElementのようなelementはまだ空に浮かんでいる.ブラウザで使用できるのは、新しく作成した要素を必要な親要素のサブ要素として追加する場合のみです.document.body.append(newDiv)
⚔▼appendとappendChildの違い(簡単!)⚔️-->appendは一度に複数のサブノードを貼り付けることができますが、appendChildは一度に1つのサブノードしか貼り付けることができません.
クエリーで最もよく使われるHTMLタグ、id、classの3種類.
const readDiv = document.querySelector('div')
const classDiv = document.querySelector('.className')
const idDiv = document.querySelector('#idName')
querySelector Allは一度に複数の要素をインポートします.これにより、クエリの要素は配列のようにfor文を使用することができます.ただし、これらの要素は実際の配列ではなく、「類似配列」(Array-like Object)であることに注意してください.const allClassDiv = document.querySelectorAll('.className')
textContent를 이용해 문자열을 추가
console.log(newDiv) // <div></div>
newDiv.textContent = 'something'
console.log(newDiv) // <div>something</div>
classList.add를 이용해 클래스를 추가
newDiv.classList.add('classA')
console.log(newDiv) // <div class="classA">something</div>
setAttribute를 이용해 아이디를 추가
newDiv.setAttribute('id', 'idA')
console.log(newDiv) // <div class="classA" id="idA">something</div>
newDiv.remove() // 이렇게 append 했던 엘리먼트를 삭제할 수 있음.
class를 삭제하는 것도 가능
newDiv.classList.remove('classA')
console.log(newDiv) // <div id="idA">something</div>
Reference
この問題について(210426. Today I Learned(TIL) : DOM), 我々は、より多くの情報をここで見つけました https://velog.io/@elma98/210426-TILToday-I-Learned-DOMテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol