<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
提交
取消