簡體   English   中英

為什么不能遍歷getElementsByTagName返回的所有元素?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM