Perkara berikut akan memperkenalkan kepada anda cara memadamkan nod menggunakan Javascript removeChild() Butiran khusus adalah seperti berikut:
Dalam Javascript, hanya ada satu kaedah untuk memadamkan nod: removeChild().
KaedahremoveChild() digunakan untuk memadamkan nod anak nod induk.
Tatabahasa:
parent.removeChild(thisNode)
Perihalan parameter:
参数 | 说明 |
---|---|
thisNode | 当前节点,即要删除的节点 |
parent | 当前节点的父节点,即 thisNode.parentNode |
Sebagai contoh, pernyataan untuk memadamkan nod dengan id="demo" ialah:
var thisNode=document.getElementById("demo"); thisNode.parentNode.removeNode(thisNode);
Contohnya, padamkan nod:
<div id="demo"> <div id="thisNode">点击删除我</div> </div> <script type="text/javascript"> document.getElementById("thisNode").onclick=function(){ this.parentNode.removeChild(this); } </script>
Contoh tunjuk cara:
Dapat dilihat bahawa walaupun Javascript hanya menyediakan satu kaedah untuk memadam nod, ia sudah memadai.
ps: Kaedah JavaScript untuk memadamkan nod anak
Kod HTML adalah seperti berikut:
<div id="f"> <div>a</div> <div>b</div> <div>c</div> </div>
Jika anda ingin memadamkan semua nod anak di bawah nod f, kaedah semula jadi dan biasa yang terlintas di fikiran hendaklah kod berikut:
var f = document.getElementById("f"); var childs = f.childNodes; for(var i = 0; i < childs.length; i++) { alert(childs[i].nodeName); f.removeChild(childs[i]); }
Apabila program dijalankan, kami mendapati bahawa tidak kira sama ada di bawah FireFox atau IE, semua nod anak tidak dapat dipadamkan sepenuhnya (kawasan kosong juga telah dipadamkan dalam FireFox
sebagai nod, jadi hasil pemadaman nod akan berbeza), ini kerana apabila anda memadamkan nod anak dengan indeks 0, adalah wajar bahawa indeks asal
Pada masa ini, indeks nod iaitu 1 menjadi 0, dan pada masa ini pembolehubah i telah menjadi 1. Apabila program diteruskan, ia akan memadamkan nod dengan indeks asal 2 dan kini ia adalah 1. Dalam ini Caranya, hasil daripada menjalankan program ialah hanya nod yang dipadamkan Untuk separuh daripada nod anak, hasil merentasi menggunakan untuk dalam adalah sama. Mahu memadamkan semua nod seperti biasa
Jika ya, kita harus memadamkan dari belakang ke hadapan, kodnya adalah seperti berikut:
for(var i = childs.length - 1; i >= 0; i--) { alert(childs[i].nodeName); f.removeChild(childs[i]); }
Kami mula memadam daripada nilai indeks maksimum, menggunakan kaedah menurun, supaya indeks tidak akan bergerak atau berubah.