js通过数组取的dom对象不认“style”属性,请高手帮我看看!

有一段js代码如下
for(var k in document.getElementsByClassName('left')){
if (k != param) {document.getElementsByClassName('left')[k].style.display='none';
}
}

html中有多个class为left的元素

目前问题是,预想效果能实现,但会报错说document.getElementsByClassName('left')[k].style is undefined,猜想是因为数组不支持style属性造成的,不知道怎么改,请高手帮我下

in在js里是遍历属性,而不是遍历数组
改成:
for(var i=0;i< document.getElementsByClassName('left').length;i++){
var k = document.getElementsByClassName('left')[i];
k.style.display = "none";
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-04-21
可能是document.getElementsByClassName('left')没有取到值。我也遇到过,不知道怎么回事,明明有这个元素就是取不到。追问

能取到的,效果也能实现,就是会额外报一个error

追答

我当时就是狂报undefine,吧我郁闷了

第2个回答  2011-04-21
加个判断解决掉

if(document.getElementsByClassName('left')[k].style!=undefined)
{
document.getElementsByClassName('left')[k].style.display='none';
}