getElementsByTagName 真的是返回一个数组吗?
来源:3-1 DOM简介
Herron___
2019-01-22 04:07:09
用chrome遍历结果出现了length,item和nameditem。返回值应该是一个dom?
3回答
1、经过确认,确实返回的是Nodlist,非常感谢同学的反馈,我们已经反馈给相关工作人员去做修改。再次感谢同学的反馈,给您带来的不便我们深表歉意。
2、同学遍历的时候建议不要用 for in这种形式。可以用原来普通的for循环:
var h = main[i] 是获取到了这个p对象,
如果想要内容,需要:main[i].innerHTML
如果想要索引,直接输入i 就可以了。
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>position</title> <style> *{ margin: 0px; padding: 0px; } #a{ float: left; width: 300px; height: 300px; background-color: red; } #b{ width: 300px; height: 300px; margin-left: 100px; margin-top: 100px; background-color: green; } </style> </head> <body> <div id = "1"> <p>1</p> <p>2</p> <p>3</p> </div> <script> var main = document.getElementsByTagName('p'); // for (i in main) { // document.writeln(i); //} for (var i = 0; i < main.length; i++) { var h = main[i].innerHTML; alert(h); } </script> </script> </body> </html>
如果我的回答解决了你的疑惑,请采纳!祝学习愉快!
Herron___
提问者
2019-01-22
我查了w3c的文档。getElementsByTagName() 返回的是一个Nodelist对象而不是一个Array。而这个Nodlist 有length这个attribute以及item这个method。但我还是不太明白为什么遍历的时候会出现。 https://www.w3.org/TR/DOM-Level-3-Core/core.html#ID-A6C9094
<div id = "1"> <p>1</p> <p>2</p> <p>3</p> </div> <script> var main = document.getElementsByTagName('p'); for (i in main) { document.writeln(i); } </script>
好帮手慕阿莹
2019-01-22
getElementsByTagName 真的是返回一个数组。
这个的意思是通过标签获取,但是一个页面中有可能会有很多个相同的标签。所以它要返回的是一个数组。“用chrome遍历结果出现了length,item和nameditem”是什么意思呢?
请同学截图并贴一下你的代码:
注意不要贴在回复里,会失去代码的格式。可以在回答里贴一下。祝学习愉快。
至于同学说的
如果我的回答解决了你的疑惑,请采纳!祝学习愉快!
相似问题