JavaScript------WebS API学習のDOM(三)
4513 ワード
ノードを削除
node.removeChild(child) 方法は、DOMからサブノードを削除し、削除されたノードを返す.
ケース:メッセージを追加して、伝言のケースを削除します.
node.cloneNode()方法は、この方法を呼び出すノードのコピーを返し、クローンノード/コピーノードとも呼ばれる.
括弧パラメータが空またはfalseであれば、浅いコピーである.すなわち、コピーノード自体だけを複製し、内部のサブノードをクローンしない.
括弧の中にtrueを入れると深いコピーになります.全部コピーします.
実例:表を動的に生成する
方式:①document.write (めったに使わない)
②innerHTML
③document.creat Element()
注意: 1.document.writeは、コンテンツを直接ページに書き込むコンテンツストリームであるが、文書ストリームの実行が完了すると、ページ全体が再描画される.
2.inneHTMLはコンテンツをあるDOMノードに書き込むもので、ページの書き換えにつながることはありません.
3.innerHTMLは複数の効率をより高く作成します.
4.createElement()複数の元素を作成するには効率がやや低いですが、構造がより明確です.
node.removeChild(child) 方法は、DOMからサブノードを削除し、削除されたノードを返す.
ケース:メッセージを追加して、伝言のケースを削除します.
var input = document.querySelector('input');
var btns = document.querySelector('button');
var ul = document.querySelector('ul');
btns.onclick = function () {
if (input.value === '') {
alert(' ');
return false;
} else {
var li = document.createElement('li');
li.innerHTML = input.value + "<a herf = 'javascript:;'> </a>";
// input , li , input .
input.value = '';
// : .insertBofore(child , ) ,ul li ul
ul.insertBefore(li, ul.children[0]);
// a
var as = document.querySelectorAll('a');
// a
for (var i = 0; i < as.length; i++) {
as[i].onclick = function () {
// : .removeChild(child) li li ul a.a li li = this.parentNode;
ul.removeChild(this.parentNode);
}
}
}
}
ノードをコピーnode.cloneNode()方法は、この方法を呼び出すノードのコピーを返し、クローンノード/コピーノードとも呼ばれる.
括弧パラメータが空またはfalseであれば、浅いコピーである.すなわち、コピーノード自体だけを複製し、内部のサブノードをクローンしない.
括弧の中にtrueを入れると深いコピーになります.全部コピーします.
実例:表を動的に生成する
var datas = [
{
name: ' ',
subject: ' ',
score: 100
},
{
name: ' ',
subject: ' ',
score: 120
},
{
name: ' ',
subject: ' ',
score: 150
},
{
name: ' ',
subject: ' ',
score: 250
}
];
var tbody =document.querySelector('tbody');
for(var i = 0 ;i < datas.length ;i++){
var tr =document.createElement('tr');
tbody.append(tr);
for(var k in datas[i]){ //k in obj k ,obj
var td = document.createElement('td');
tr.append(td);
// data[i][k]
td.innerHTML = datas[i][k];
}
var td = document.createElement('td');
td.innerHTML = "<a herf='javascript:;'> </a>";
tr.append(td);
}
var as = document.querySelectorAll('a');
for(var i = 0 ;i< as.length ;i++){
as[i].onclick = function(){
//a , this.parentNode.parentNode
tbody.removeChild(this.parentNode.parentNode);
}
}
3つの動的要素を作成する方法と違い方式:①document.write (めったに使わない)
②innerHTML
③document.creat Element()
注意: 1.document.writeは、コンテンツを直接ページに書き込むコンテンツストリームであるが、文書ストリームの実行が完了すると、ページ全体が再描画される.
2.inneHTMLはコンテンツをあるDOMノードに書き込むもので、ページの書き換えにつながることはありません.
3.innerHTMLは複数の効率をより高く作成します.
4.createElement()複数の元素を作成するには効率がやや低いですが、構造がより明確です.