透過 getElementsByClassName 正確迭代
使用網頁時,透過類別名稱存取元素是一項常見任務。 getElementsByClassName 方法提供一個 NodeList,它表示匹配元素的集合。但是,迭代 NodeList 可能很棘手,尤其是在修改 DOM 時。
在您的情況下,您嘗試迭代 getElementsByClassName("slide") 傳回的元素並對每個元素執行操作使用分配功能。但是,由於 NodeList 性質的變化,您會遇到不可預測的行為。
解決方案是使用 item(index) 方法從 NodeList 中檢索單一元素。正確迭代的方法如下:
const slides = document.getElementsByClassName("slide"); for (let i = 0; i < slides.length; i++) { Distribute(slides.item(i)); }
透過使用 item() 方法,您可以透過索引存取 NodeList 中的每個元素。這可以確保即使 DOM 發生變化,迭代也保持確定性。
其他注意事項
如果您的幻燈片元素可以相互嵌套,請務必注意item() 方法將為任何沒有指定類別名稱的巢狀元素傳回null。要處理巢狀投影片,您可以使用更高級的技術,例如查詢容器內的所有元素並按類別名稱過濾它們。
以上是如何正確迭代 getElementsByClassName 並避免不可預測的行為?的詳細內容。更多資訊請關注PHP中文網其他相關文章!