[CS] DOM Day-18
13373 ワード
DOM
Document Object Model
その他の常識
$0はクリックした現在の値を表します.
<div id="practice" class="highlight red">
Here is one Element
</div>
ラベル名:divid : practice
class : highlight, red
内容:Here is one Element
<body>
<div id="practice" class="highlight red">
Here is one Element
<span>자식도 있습니다.</span>
<span>자식이 여러개 입니다.</span>
</div>
</body>
条件はdiv親要素:body(1個)
サブエイリアス:span(2個)
logとdirの違い
ex) console.ロゴ入力時
<input id="username" type="text" placeholder="아이디를 입력하세요">
ex) console.dir入力時input#username
プロパティの値を特定できます.役に立つElementオブジェクトの理解
ChildrenとChildNodesの違い(参照)
childeNodesには、サブ要素の入力値も表示されます.
childrenはいくつかの要素しか知らないが、何なのか.
≪イベント|Events|ldap≫
特定のボタンを押すと動作==イベントが発生します
ex) HTML
<button>Click</button>
ex)JavaScript関数の作成$0.onclick = function () {
console.log('Hello World');
}
ex)JavaScriptイベントの実装$0.addEventListener('click', function() {
console.log('Hello World');
}
要素の選択方法
JavaScriptで特定の要素を選択してインポートします.
これでquerySelectorとquerySelector Allのみがわかります.
ex)
document.querySelectorAll('.comment')
ex)let allComments = document.querySelectorAll('.comment')
console.log(allComments[2]);
// 이런식으로 comment class를 불러올 수 있다.
value登録方法
function getInputValue() {
// username을 선택한다.
// new-tweet을 선택한다.
// username의 값을 얻어온다.
// new-tweet의 값을 얻어온다.
let elUsername = document.querySelector('#username');
let elNewTweet = document.getElementById('new-tweet');
//여기서 querySelector 와 getElementById는 같은 역할을 한다.
// getElementById의 경우 #을 넣지 않는다.
console.log(elUsername.value);
console.log(elNewTweet.value);
上記の方法でコンソールウィンドウに出力できます.buttonでgetInputValueを読み込む
document.querySelector('#register').onclick = getInputValue;
buttonをクリックすると、getInputValueを実行して値を得ることができます.操作DOM(innerHTML)
innerHTMLプロパティは、読み取り可能で書き込み可能なプロパティです.
最も簡単で、最も遅くて、最も安全です.(textContentを使用することを推奨します.)
ex)HTMLコード
<div id="target">변경 전</div>
ex) JavaScriptlet target = document.querySelector('#target');
target.innerHTML = `
<span>변경 후</span>
`;
ex)HTML出力結果<div id="target">
<span>변경 후</span>
</div>
オペレーションDOM
Elementを作成する方法を理解する必要があります.InnerHTML生成を使用するよりも複雑ですが、メソッドを使用して要素を作成する利点は、作成時にイベントハンドラを登録できることです.
ex) HTML
<div id="target">변경 전</div>
ex) JavaScriptlet target = document.querySelector('#target');
let newSpan = document.createElement('Span'); // span Element를 만듭니다.
newSpan.innerHTML = '변경 후';
target.appendChild(newSpan); // target 아랫쪽에 newSpan(span)을 추가합니다.
ex)HTML出力結果<div id="target">
변경 전
<span>변경 후</span>
</div>
しゅうせい
新しい要素
function appendNewComment() {
let li = document.createElement('li');
li.className = 'comment';
li.innterHTML = `<div class="username">KJ</div>`
let parent = document.querySelector('#view-comments')
parent.appendChild(li)
}
挿入appendNewComment();
操作DOM(<template>タグ)=>熟練時単独練習
HTMLでHTMLセグメントを定義できます.
ex) HTML
<template id="will-be-rendered">
<span>변경 후</span>
</template>
<div id="target">변경 전</div>
ex) JavaScriptlet target = document.querySelector('#target');
let template = document.querySelector('#will-be-rendered');
// #will-be-rendered 안쪽 내용을 자식 노드를 전부 포함하여 복사합니다.
let newContent = document.importNode(template.content, true);
// target 내용을 비웁니다.
target.innerHTML = '';
target.appendChild(newContent);
Reference
この問題について([CS] DOM Day-18), 我々は、より多くの情報をここで見つけました https://velog.io/@cptkuk91/CS34テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol