我正在尝试用另一个标签替换一组标签,但由于某种原因,我似乎无法遍历getElementsByTagName()返回的所有标签。
In the example第一行中的第二个td
由于某种原因被跳过,即使它出现在console.log(tds)
中。
我的代码出了什么问题?
答案 0 :(得分:5)
将第一行更改为:
var tds = [].slice.call(document.getElementsByTagName('td'), 0);
.getElementsByTagName()
返回的值是NodeList,而不是数组。 NodeList对象是“实时”的,这意味着它们会在您更改DOM时发生更改。也就是说,tds.length
正在递减,但你的i
也在递增 - 因此你每次迭代都缺少一个元素。如果你首先将它变成一个数组,如上所述,那么你的代码应该可以工作。