<p> Konsep Utama: <ul> dengan cekap mengira unsur-unsur kanak-kanak menggunakan sifat
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
<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>
<p>
: <ul>
var myList = document.getElementById('myList'); console.log(myList.children.length); // 6 console.log(myList.childElementCount); // 6
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
<p> Memeriksa nod kanak -kanak:
<p> mengembalikan boolean yang menunjukkan kehadiran nod kanak -kanak: hasChildNodes()
console.log(myList.hasChildNodes()); // true
<ul>
. Hanya true
(tidak ada ruang kosong) yang benar -benar kosong) akan kembali <ul>
. false
<p> Menambah dan mengeluarkan unsur: <p>
: appendChild()
<ul>
// ... (Assuming a containing div with id "container") ... var myList = document.getElementById('myList'); document.getElementById('container').appendChild(myList);
removeChild()
ChildNode.remove()
Menggantikan Elements: <p>
menggantikan satu anak dengan yang lain:
replaceChild()
var myPar = document.getElementById('par'), myDiv = document.createElement('div'); myDiv.textContent = 'New element'; document.body.replaceChild(myDiv, myPar);
<p id="par"></p>
mensasarkan kanak -kanak tertentu:
firstElementChild
, lastElementChild
, nextElementSibling
, dan previousElementSibling
membenarkan penargetan tepat kanak -kanak tertentu.
Menyuntik kandungan:
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!