[英]Why can't I iterate over all the elements returned by getElementsByTagName?
我試圖用另一個標簽替換一組標簽,但是由於某種原因,我似乎無法遍歷getElementsByTagName()返回的所有標簽。
在此示例中 ,盡管第一行中的第二個td
出現在console.log(tds)
中,但由於某種原因還是被跳過了。
我的代碼有什么問題?
將第一行更改為:
var tds = [].slice.call(document.getElementsByTagName('td'), 0);
從.getElementsByTagName()
返回的值是NodeList,而不是數組。 NodeList對象是“活動的”,這意味着它們在您更改DOM時也會更改。 也就是說, tds.length
正在遞減,但是您的i
也在遞增-因此,每次迭代都缺少一個元素。 如果您如上所述首先將其轉換為數組,則您的代碼應該可以工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.