Apabila bekerja dengan NodeLists, yang merupakan nilai pulangan bagi fungsi getElementsByClassName, adalah penting untuk mengelakkan pendekatan lelaran yang betul tingkah laku yang tidak dijangka seperti perubahan panjang dan elemen pesanan.
Memahami NodeLists
Tidak seperti tatasusunan, NodeLists ialah koleksi langsung yang dikemas kini secara dinamik mengikut perubahan pepohon DOM. Ini bermakna kandungan NodeList boleh berubah semasa lelaran, yang berpotensi membawa kepada isu.
Penyelesaian
Untuk lelaran melalui NodeList dengan berkesan, gunakan kaedah item untuk mengakses elemen individu. Ini memastikan bahawa elemen diambil daripada NodeList tanpa mengubah suainya:
const slides = document.getElementsByClassName("slide"); for (let i = 0; i < slides.length; i++) { Distribute(slides.item(i)); }
Contoh dengan Slaid Bersarang
Dalam kes di mana slaid bersarang dalam elemen lain, anda mungkin memerlukan pendekatan alternatif:
const slides = document.getElementsByClassName("slide"); const clonedSlides = []; // Clone each slide to prevent DOM updates during iteration for (let i = 0; i < slides.length; i++) { clonedSlides.push(slides.item(i).cloneNode(true)); } // Iterate through the cloned slides and perform necessary actions for (let i = 0; i < clonedSlides.length; i++) { Distribute(clonedSlides[i]); }
Dengan mengklon slaid, anda mencipta syot kilat DOM, memastikan proses lelaran tidak akan terjejas oleh perubahan pada pokok DOM.
Atas ialah kandungan terperinci Bagaimana untuk Lelaran Melalui NodeLists dengan Betul: Penyelesaian untuk getElementsByClassName?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!