<body> <ul> <li>javascript</li> <li>HTML/CSS</li> <li>jQuery</li> </ul> <script type="text/javascript"> var List=document.getElementsByTagName("li"); for(var i in List){ document.write("List: "+i+" |"); document.write(List[i].nodeName+":"+List[i].nodeValue+":"+List[i].nodeType+"<br/>"); } </script></body>原来该输出:List: 0 |LI:null:1List: 1 |LI:null:1List: 2 |LI:null:1上面会比var i in List多输出下面的:List: length |undefined:undefined:undefinedList: item |undefined:undefined:undefinedList: namedItem |undefined:undefined:undefined
3 回答
已采纳
业余奶茶品鉴师
TA贡献260条经验 获得超388个赞

如图所示:
用
var List=document.getElementsByTagName("li");
获得的 List 是个对象,每个对象都有一个"__proto__" 属性,所以循环了6次,就有了下面那些。
记得采纳
Yexiaomo
TA贡献152条经验 获得超157个赞
以前没注意,今天才发现QAQ
查询文档知:getElementsByTagName() 方法可返回带有指定标签名的对象的集合。
说是带有指定标签的对象, 自己测试了一下,如下
<script type="text/javascript">
var List=document.getElementsByTagName("li");
for(var i in List){
l = List[i];
console.log(i+':'+l);
}
</script>1.控制台打印情况如下,
0:[object HTMLLIElement]
1:[object HTMLLIElement]
2:[object HTMLLIElement]
length:3
item:function item() { [native code] }
namedItem:function namedItem() { [native code] }2.调试程序发现 List 为

这个对象集合就是这个了 ,注意是集合 不是数组
添加回答
举报
0/150
提交
取消
