Rumah >hujung hadapan web >tutorial js >Petua dan Teknik DOM: Ibu Bapa, Anak, dan Saudara
Konsep Utama:
children
, mengelakkan kemasukan nod bukan elemen (sebagai childElementCount
mungkin). childNodes.length
hasChildNodes()
appendChild()
atau removeChild()
. ChildNode.remove()
replaceChild()
firstElementChild
, lastElementChild
, dan nextElementSibling
untuk manipulasi DOM yang tepat. previousElementSibling
Mengira nod kanak -kanak:
Pertimbangkan contoh HTML ini (digunakan sepanjang artikel):
<code class="language-html"><ul id="myList"> <li>Example one</li> <li>Example two</li> <li>Example three</li> <li>Example four</li> <li>Example five</li> <li>Example six</li> </ul></code>untuk mengira elemen dalam
<p> </p>
: <ul></ul>
<code class="language-javascript">var myList = document.getElementById('myList'); console.log(myList.children.length); // 6 console.log(myList.childElementCount); // 6</code>
dan children.length
menghasilkan hasil yang sama (6). childElementCount
sering disukai untuk kejelasannya. Menggunakan childElementCount
akan mengembalikan nombor yang lebih tinggi, kerana ia termasuk semua jenis nod, termasuk ruang putih. childNodes.length
Memeriksa nod kanak -kanak:
mengembalikan boolean yang menunjukkan kehadiran nod kanak -kanak: hasChildNodes()
<code class="language-javascript">console.log(myList.hasChildNodes()); // true</code>walaupun
kosong dengan ruang putih akan kembali <ul></ul>
. Hanya true
(tidak ada ruang kosong) yang benar -benar kosong) akan kembali <ul></ul>
. false
Menambah dan mengeluarkan unsur:
<p> </p>
: appendChild()
<ul></ul>
<code class="language-javascript">// ... (Assuming a containing div with id "container") ... var myList = document.getElementById('myList'); document.getElementById('container').appendChild(myList);</code>Mengeluarkan nod kanak -kanak.
menyediakan alternatif yang lebih ringkas (tidak disokong pada IE yang lebih tua). removeChild()
ChildNode.remove()
menggantikan satu anak dengan yang lain:
replaceChild()
<code class="language-javascript">var myPar = document.getElementById('par'), myDiv = document.createElement('div'); myDiv.textContent = 'New element'; document.body.replaceChild(myDiv, myPar);</code>dengan
yang baru. <p id="par"></p>
mensasarkan kanak -kanak tertentu:
firstElementChild
, lastElementChild
, nextElementSibling
, dan previousElementSibling
membenarkan penargetan tepat kanak -kanak tertentu.
Menyuntik kandungan:
Masukkan elemen sebelum adik yang ditentukan. insertBefore()
menawarkan kawalan yang lebih tepat ke atas titik sisipan (insertAdjacentHTML()
, beforebegin
, afterbegin
beforeend
afterend
Sokongan penyemak imbas:
Kebanyakan kaedah mempunyai sokongan penyemak imbas yang sangat baik, termasuk versi IE yang lebih tua. tidak mempunyai sokongan pada lebih tua iaitu.
ChildNode.remove()
Kesimpulan:
Walaupun JQuery memudahkan manipulasi DOM, memahami API DOM asli adalah penting untuk pembangunan web yang cekap dan moden. Ujian menyeluruh adalah penting untuk mengambil kira ketidakkonsistenan penyemak imbas yang berpotensi.
Atas ialah kandungan terperinci Petua dan Teknik DOM: Ibu Bapa, Anak, dan Saudara. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!