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")
展开
 我来答
sodarfish
2009-04-29 · TA获得超过457个赞
知道小有建树答主
回答量:371
采纳率:0%
帮助的人:333万
展开全部
是这样的: for in 并不是你理解的那种遍历效果。
for in 遍历的不是数组,而是那个对象,也就是cbAll 这个对象,它遍历访问的每个值其实是cbAll的每个属性,而不是数组元素,不信你可以用
for(var i in cbAll){
alert(i);
}
来看看每个i到底是谁,肯定不是数组元素。

for 循环根据下标访问的才算真是的数组元素。

所以for in 和for 是有区别的。
并且,使用for in 的效率要远低于for循环哦
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wangshiyi95
2009-04-29 · TA获得超过2418个赞
知道大有可为答主
回答量:1709
采纳率:0%
帮助的人:0
展开全部
用for in 当然一个元素都找不到
子元素都是放在childNodes属性里的(一个NamedNodeMap对象)
另外getElementsByName("cb")返回的也是一个NamedNodeMap对象,不是Node
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wuzhikun12
2009-04-27 · TA获得超过880个赞
知道小有建树答主
回答量:931
采纳率:0%
帮助的人:453万
展开全部
getElementByName("cb");
改为:
getElementsByName("cb");
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式