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”是什么意思呢?
请同学截图并贴一下你的代码:
注意不要贴在回复里,会失去代码的格式。可以在回答里贴一下。祝学习愉快。
至于同学说的
如果我的回答解决了你的疑惑,请采纳!祝学习愉快!
相似问题