Bagaimana untuk Lelaran Melalui NodeLists dengan Betul: Penyelesaian untuk getElementsByClassName?

DDD
Lepaskan: 2024-11-11 10:33:03
asal
450 orang telah melayarinya

How to Iterate Through NodeLists Correctly: A Solution for getElementsByClassName?

Lelaran NodeList Dengan Betul: Penyelesaian untuk getElementsByClassName

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));
}
Salin selepas log masuk

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]);
}
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan