ฉันเป็นมือใหม่ Javascript
ฉันกำลังเข้าสู่หน้าเว็บผ่านทางwindow.onloadฉันต้องหาองค์ประกอบจำนวนมากตามชื่อคลาส ( slide) และแจกจ่ายใหม่เป็นโหนดต่างๆตามตรรกะบางอย่าง ฉันมีฟังก์ชันDistribute(element)ที่รับองค์ประกอบเป็นอินพุตและทำการกระจาย ฉันต้องการทำสิ่งนี้ (ตามที่อธิบายไว้ที่นี่หรือที่นี่ ):
var slides = getElementsByClassName("slide");
for(var i = 0; i < slides.length; i++)
{
Distribute(slides[i]);
}
อย่างไรก็ตามสิ่งนี้ไม่ได้ทำเวทมนตร์ให้ฉันเพราะgetElementsByClassNameไม่ได้ส่งคืนอาร์เรย์ แต่ a NodeListซึ่งก็คือ ...
... นี่คือการคาดเดาของฉัน ...
... กำลังเปลี่ยนแปลงภายในฟังก์ชันDistribute(ทรี DOM กำลังถูกเปลี่ยนแปลงภายในฟังก์ชันนี้และการโคลนโหนดบางโหนดจะเกิดขึ้น) For-eachโครงสร้างลูปก็ไม่ช่วยเช่นกัน
การกระทำของสไลด์ตัวแปรนั้นไม่สามารถกำหนดได้จริง ๆ ทุกครั้งที่การทำซ้ำจะเปลี่ยนความยาวและลำดับขององค์ประกอบอย่างรุนแรง
วิธีที่ถูกต้องในการวนซ้ำผ่าน NodeList ในกรณีของฉันคืออะไร? ฉันกำลังคิดเกี่ยวกับการเติมอาร์เรย์ชั่วคราว แต่ไม่แน่ใจว่าจะทำอย่างไร ...
แก้ไข:
ความจริงที่สำคัญฉันลืมที่จะพูดถึงก็คือว่ามีอาจจะเป็นหนึ่งสไลด์ภายในอื่นนี้เป็นจริงสิ่งที่เปลี่ยนแปลงslidesตัวแปรที่ผมได้พบเพียงแค่ออกขอบคุณให้กับผู้ใช้Alohci
วิธีแก้ปัญหาสำหรับฉันคือการโคลนแต่ละองค์ประกอบลงในอาร์เรย์ก่อนและส่งอาร์เรย์ทีละรายการไปในDistribute()ภายหลัง

