ドキュメントの操作
11434 ワード
DOMの修正は、ダイナミックなWebページを構築する鍵です.次の方法では、新しいWebページを作成し、動的に変更できます.
詳細なDOM操作方法についてはDOM1を参照してください.
ノードの作成
DOMに要素を作成するには、次の方法を使用します.
var div = document.createElement('div')
var textElem = document.createTextNode('Robin was here')
createElementメソッドは最も広く使われていますが、createTextNodeメソッドもよく使われています.テキストノードが作成され、他の要素に追加できます.
空の要素の場合、テキストノードを作成し、他の要素に追加するのはinnerHTMLよりも効率的です.
しかしinnerHTMLは比較的簡潔で、ラベルのネストをサポートしているため、両者とも広く使われている.
1つの要素はクローン化できます.
parentElem.appendChild(elem):parentElemノードにelemサブノードを追加します.
次のコードでは、要素を作成してBODYに追加する方法を示します.
<div>
...
</div>
<script>
var div = document.body.children[0]
var span = document.createElement('span')
span.innerHTML = 'A new span!'
div.appendChild(span)
</script>
新しい要素は最後のサブノードになります.
空のコンテンツの要素ノードelemがあり、次の2つの操作方法が異なります.textコンテンツは「tag」です.
リンクの実装
parentElem.InsertBefore(elem,nextSibling):parentElemのサブノードnextSiblingの前にelemを挿入します.
プレゼンテーション:
<div>
...
</div>
<script>
var div = document.body.children[0]
var span = document.createElement('span')
span.innerHTML = 'A new span!'
div.insertBefore(span, div.firstChild)
</script>
注意insertBeforeの2番目のパラメータがnullの場合、機能はappendChildと同じになります.
elem.insertBefore(newElem, null) // same as
elem.appendChild(newElem)
すべての挿入メソッドは、追加されたノードを返します.
ノードの削除
DOMからノードを削除するには、主に2つの方法があります.
エレメントを移動したい場合は、先に削除する必要はありません.
elem.appendChild/insertBefore elem。
次の例では、最後の要素をサブノードの最初の位置に移動する方法を示します.
<div>First div</div>
<div>Last div</div>
<script>
var first = document.body.children[0]
var last = document.body.children[1]
document.body.insertBefore(last, first)
</script>
タスクおよび例
InsertAfter(elem,refElem)メソッドを記述し、elemノードをrefElemノードの後に挿入します.
<div>Very</div>
<div>Secret</div>
<script>
var elem = document.createElement('div');
elem.innerHTML = 'Child';
function insertAfter(elem, refElem) {
}
insertAfter(elem, document.body.firstChild)
insertAfter(elem, document.body.lastChild)
</script>
参考答案
メソッドremoveChildrenを作成して、要素のすべてのサブノードを削除します.
<div>Very</div>
<div>Secret</div>
<div>Children</div>
<script>
function removeChildren(elem) {
}
removeChildren(document.body) // BODY
</script>
参考答案
次の機能を持つプログラムを作成します.
参考答案
まとめ
ノードを作成するには
ノードの挿入と削除:親ノード呼び出しメソッドはelemを返します.
parent.appendChild(elem)
parent.insertBefore(elem, nextSibling)
parent.removeChild(elem)
parent.replaceChild(elem, currentElem)