[英]Javascript function: nothing executes after a for(x in y) loop?
我似乎在任何地方都找不到答案……我有一个需要设置两个表的bg颜色的函数。 仅该函数中的第一个表受到影响。 函数中仅允许一个for循环吗? ...还是第一个for循环可能永远不会退出?
我可以通过创建多个函数来解决此问题,但我真的很想了解为什么这样做会如此!
谢谢!
这是我的简化代码:
function setColor()
{
//This works
var t1rows=document.getElementById("table1").getElementsByTagName("tr");
var x;
for (x in t1rows)
{
t1rows[x].style.backgroundColor='yellow';
}
//this one does not work
var t2rows=document.getElementById("table2").getElementsByTagName("tr");
var y;
for (y in t2rows)
{
t2rows[y].style.backgroundColor='yellow';
}
}
getElementsByTagName()
返回一个NodeList
对象 , for-in
将迭代其不需要的属性。 您要使用直接for
循环:
for(var i=0; i < t2rows.length; i++) {
t2rows[i].style.backgroundColor='yellow';
}
您不会进入第二个循环,因为第一个循环在尝试访问NodeList
成员之一上不存在的style
属性时失败。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.