javascript中的for in 循环
代码是这样的。。。。<scriptlanguage="javascript">functioncheckAll(){varcbAll=document.getElemen...
代码是这样的。。。。
<script language="javascript">
function checkAll(){
var cbAll=document.getElementByName("cb");
for(var i in cbAll){
i.checked=true;
}
}
</script>
.....我想通过for in 循环达到复选框全选的效果,,但是不行,,为什么?
但是就用普通的for循环能行。。。用通过下标的方式能达到效果,。。这是为什么,,请高手指教!!
不好意思,,打错了,,我是用的getElementsByName("cb") 展开
<script language="javascript">
function checkAll(){
var cbAll=document.getElementByName("cb");
for(var i in cbAll){
i.checked=true;
}
}
</script>
.....我想通过for in 循环达到复选框全选的效果,,但是不行,,为什么?
但是就用普通的for循环能行。。。用通过下标的方式能达到效果,。。这是为什么,,请高手指教!!
不好意思,,打错了,,我是用的getElementsByName("cb") 展开
3个回答
展开全部
是这样的: for in 并不是你理解的那种遍历效果。
for in 遍历的不是数组,而是那个对象,也就是cbAll 这个对象,它遍历访问的每个值其实是cbAll的每个属性,而不是数组元素,不信你可以用
for(var i in cbAll){
alert(i);
}
来看看每个i到底是谁,肯定不是数组元素。
for 循环根据下标访问的才算真是的数组元素。
所以for in 和for 是有区别的。
并且,使用for in 的效率要远低于for循环哦
for in 遍历的不是数组,而是那个对象,也就是cbAll 这个对象,它遍历访问的每个值其实是cbAll的每个属性,而不是数组元素,不信你可以用
for(var i in cbAll){
alert(i);
}
来看看每个i到底是谁,肯定不是数组元素。
for 循环根据下标访问的才算真是的数组元素。
所以for in 和for 是有区别的。
并且,使用for in 的效率要远低于for循环哦
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用for in 当然一个元素都找不到
子元素都是放在childNodes属性里的(一个NamedNodeMap对象)
另外getElementsByName("cb")返回的也是一个NamedNodeMap对象,不是Node
子元素都是放在childNodes属性里的(一个NamedNodeMap对象)
另外getElementsByName("cb")返回的也是一个NamedNodeMap对象,不是Node
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
getElementByName("cb");
改为:
getElementsByName("cb");
改为:
getElementsByName("cb");
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询