第4週コード状態/DOM
✏️Achievement Goals
89 DOMの概念が理解できる.
COMの構造を理解し、HTMLとDOMの類似性を理解する.
JavaScriptアクション89 DOMを使用して、HTML要素を追加、削除、または変更できます.
📝summary DOM
ドキュメントオブジェクトモデルの略.
htmlドキュメントの構造と関係をオブジェクト(object)で表すモデル
🤯だからドームってなに???
JAvascriptはHTML操作に特化した言語です
HTML操作を行うために、
作成対象資料型が必要<div id="practice" class="red">안녕하세요</div>
HTMLファイルにdivタグがある場合はJavaScriptに変更できます
このとき、コンピュータはdivをオブジェクト(Object)としてJavaScriptを使用してdivを操作します.
資料型にまとめる.var document = {
div태그 : {
id : {practice}
style : {color : "red"}
innerHTML : "안녕하세요"
}
}
上記のコードと同様に、必要な資料をインポートして変更するには、オブジェクト形式の資料の中で整理する必要があります.これがDOMです.
このようにhtmlドキュメントをJavaScriptで使用可能としてマークするオブジェクト(Object)をDOMと呼ぶ
DOM JavaScriptを使用して要素の属性を取得または変更する
📚DOMによるHTML処理
ブラウザでは、DOMツリーの検索と操作を支援するさまざまな方法(DOM API)が用意されています.
いろいろな方法を学びましょう.
1.新しい装飾を作る
活用するために、変数に割り当てるといいですconst newEl = document.createElement('div')
console.log(newEl) // <div></div>
2.文字列の入力
newEl.textContent = '문자열 입력은 textContent'
console.log(newEl) // <div>문자열 입력은 textContent<div>
3.クラスの追加
newEl.classList.add('red')
console.log(newEl) // <div class = 'red'>문자열 입력은 textContent<div>
4.別名に追加
document.body.append(newEl)
画面にはまだ要素が見えません
画面に表示したい場合は、appendメソッドを使用してbodyラベルに入れることができます.
このように追加されたページが表示されます
この場合、マスタータグではなく、必要な位置に配置する必要があります.
希望する場所の情報を検索できるようにするには
5.クエリー情報(オブジェクトを返す)
element = document.querySelector(selectors);
// selector의 그룹과 일치하는 document안 첫번째 엘리먼트를 반환한다.
// 일치하는게 없으면 null을 반환한다
クエリー・セレクタの
[セレクタ](Selector)を最初のパラメータに渡して確認できます.
HTMLタグ("div")、id("#tweetList")、class(.tweet)は最も一般的な3つのコレクターです <body>
<div id="container">
<h2>Tweet List</h2>
<div class="tweet">hello</div>
<div class="tweet">world</div>
<div class="tweet">code</div>
<div class="tweet">states</div>
</div>
</body>
このようなコードがあればquerySelector : 선택자가 선택하는 요소의 첫번째 요소를 반환
console.log(document.querySelector(".tweet"))
// <div class="tweet">hello</div>
querySelectorAll : 모든 요소(NodeList)를 반환
console.log(document.querySelectorAll(".tweet"))
// NodeList {0: HTMLDivElement, 1: HTMLDivElement, 2: HTMLDivElement, 3: HTMLDivElement, entries: ƒ entries()…}
// 0: <div class="tweet">hello</div>
// 1: <div class="tweet">world</div>
// 2: <div class="tweet">code</div>
// 3: <div class="tweet">states</div>
上のコードにコンテナにdivラベルを追加したい場合は、このように使用できます.const container = document.querySelector('#container')
container.append(newEl)
6.削除
1)削除するエンティティの場所がわかっている場合
const container = document.querySelector('#container')
const tweetDiv = document.createElement('div')
container.append(tweetDiv)
tweetDiv.remove() // append 했던 엘리먼트를 삭제할 수 있다
2)複数の子を削除
document.querySelector('#container').innerHTML = '';
// id가 container인 엘리먼트 아래의 모든 엘리먼트를 지운다
innerHTMLはセキュリティの問題があるので、異なる方法を使用します.
InnerHTMLはサイト間スクリプト攻撃を受けやすいという問題があります.innerHTML属性は文字列自体を変更できるので、ハッカーに<script>
タグを使ってJavaScriptコードを作成し、実行させることができます.const container = document.querySelector('#container');
while (container.firstChild) {
container.removeChild(container.firstChild);
}
// removeChild 는 자식 엘리먼트를 지정해서 삭제하는 메소드이다
// 모든 자식 엘리먼트를 삭제하기 위해, 반복문을 활용할 수 있다
// 자식 엘리먼트가 남아있지 않을 때까지,
// 첫 번째 자식 엘리먼트를 삭제하는 코드이다
3)不要な部分の消去防止
<h2>Tweet List</h2>
というタイトルのh 2ラベルを保持する場合は、const container = document.querySelector('#container');
while (container.children.length > 1) {
container.removeChild(container.lastChild);
}
// container의 자식 엘리먼트가 1개만 남을 때까지
// 마지막 자식 엘리먼트를 제거
const tweets = document.querySelectorAll('.tweet')
tweets.forEach(function(tweet){
tweet.remove();
})
// or
for (let tweet of tweets){
tweet.remove()
}
// 직접 클래스 이름이 tweet인 엘리먼트만 찾아서 지우는 방법
Reference
この問題について(第4週コード状態/DOM), 我々は、より多くの情報をここで見つけました
https://velog.io/@support/코드스테이츠-4주차-DOM
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
DOM
ドキュメントオブジェクトモデルの略.htmlドキュメントの構造と関係をオブジェクト(object)で表すモデル
🤯だからドームってなに???
JAvascriptはHTML操作に特化した言語です
HTML操作を行うために、
作成対象資料型が必要
<div id="practice" class="red">안녕하세요</div>
HTMLファイルにdivタグがある場合はJavaScriptに変更できますこのとき、コンピュータはdivをオブジェクト(Object)としてJavaScriptを使用してdivを操作します.
資料型にまとめる.
var document = {
div태그 : {
id : {practice}
style : {color : "red"}
innerHTML : "안녕하세요"
}
}
上記のコードと同様に、必要な資料をインポートして変更するには、オブジェクト形式の資料の中で整理する必要があります.これがDOMです.このようにhtmlドキュメントをJavaScriptで使用可能としてマークするオブジェクト(Object)をDOMと呼ぶ
DOM JavaScriptを使用して要素の属性を取得または変更する
📚DOMによるHTML処理
ブラウザでは、DOMツリーの検索と操作を支援するさまざまな方法(DOM API)が用意されています.
いろいろな方法を学びましょう.
1.新しい装飾を作る
活用するために、変数に割り当てるといいです
const newEl = document.createElement('div')
console.log(newEl) // <div></div>
2.文字列の入力
newEl.textContent = '문자열 입력은 textContent'
console.log(newEl) // <div>문자열 입력은 textContent<div>
3.クラスの追加
newEl.classList.add('red')
console.log(newEl) // <div class = 'red'>문자열 입력은 textContent<div>
4.別名に追加
document.body.append(newEl)
画面にはまだ要素が見えません画面に表示したい場合は、appendメソッドを使用してbodyラベルに入れることができます.
このように追加されたページが表示されます
この場合、マスタータグではなく、必要な位置に配置する必要があります.
希望する場所の情報を検索できるようにするには
5.クエリー情報(オブジェクトを返す)
element = document.querySelector(selectors);
// selector의 그룹과 일치하는 document안 첫번째 엘리먼트를 반환한다.
// 일치하는게 없으면 null을 반환한다
クエリー・セレクタの[セレクタ](Selector)を最初のパラメータに渡して確認できます.
HTMLタグ("div")、id("#tweetList")、class(.tweet)は最も一般的な3つのコレクターです
<body>
<div id="container">
<h2>Tweet List</h2>
<div class="tweet">hello</div>
<div class="tweet">world</div>
<div class="tweet">code</div>
<div class="tweet">states</div>
</div>
</body>
このようなコードがあればquerySelector : 선택자가 선택하는 요소의 첫번째 요소를 반환
console.log(document.querySelector(".tweet"))
// <div class="tweet">hello</div>
querySelectorAll : 모든 요소(NodeList)를 반환
console.log(document.querySelectorAll(".tweet"))
// NodeList {0: HTMLDivElement, 1: HTMLDivElement, 2: HTMLDivElement, 3: HTMLDivElement, entries: ƒ entries()…}
// 0: <div class="tweet">hello</div>
// 1: <div class="tweet">world</div>
// 2: <div class="tweet">code</div>
// 3: <div class="tweet">states</div>
上のコードにコンテナにdivラベルを追加したい場合は、このように使用できます.const container = document.querySelector('#container')
container.append(newEl)
6.削除
1)削除するエンティティの場所がわかっている場合
const container = document.querySelector('#container')
const tweetDiv = document.createElement('div')
container.append(tweetDiv)
tweetDiv.remove() // append 했던 엘리먼트를 삭제할 수 있다
2)複数の子を削除
document.querySelector('#container').innerHTML = '';
// id가 container인 엘리먼트 아래의 모든 엘리먼트를 지운다
innerHTMLはセキュリティの問題があるので、異なる方法を使用します.InnerHTMLはサイト間スクリプト攻撃を受けやすいという問題があります.innerHTML属性は文字列自体を変更できるので、ハッカーに
<script>
タグを使ってJavaScriptコードを作成し、実行させることができます.const container = document.querySelector('#container');
while (container.firstChild) {
container.removeChild(container.firstChild);
}
// removeChild 는 자식 엘리먼트를 지정해서 삭제하는 메소드이다
// 모든 자식 엘리먼트를 삭제하기 위해, 반복문을 활용할 수 있다
// 자식 엘리먼트가 남아있지 않을 때까지,
// 첫 번째 자식 엘리먼트를 삭제하는 코드이다
3)不要な部分の消去防止
<h2>Tweet List</h2>
というタイトルのh 2ラベルを保持する場合は、const container = document.querySelector('#container');
while (container.children.length > 1) {
container.removeChild(container.lastChild);
}
// container의 자식 엘리먼트가 1개만 남을 때까지
// 마지막 자식 엘리먼트를 제거
const tweets = document.querySelectorAll('.tweet')
tweets.forEach(function(tweet){
tweet.remove();
})
// or
for (let tweet of tweets){
tweet.remove()
}
// 직접 클래스 이름이 tweet인 엘리먼트만 찾아서 지우는 방법
Reference
この問題について(第4週コード状態/DOM), 我々は、より多くの情報をここで見つけました https://velog.io/@support/코드스테이츠-4주차-DOMテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol