测试.html
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Untitled Document</title>
<script>
var eles = document.getElementsByClassName('review');
console.log(eles);
console.log(eles.length);
console.log(eles[0]);
// for(var i=0, max=eles.length)
</script>
</head>
<body>
<div class="review"></div>
<div class="review"></div>
<div class="review"></div>
<div class="review"></div>
<div class="review"></div>
</body>
我检查了 else 代表 HTMLCollection。
Here https://developer.mozilla.org/en-US/docs/Web/API/HTMLCollection说 HTMLCollection 还通过名称和索引直接将其成员公开为属性。
所以我尝试通过console.log(eles.length)和console.log(eles[0])进行调试。
但不幸的是控制台显示 0 和未定义。(使用 Google Chrome Tool Developer)
我如何访问 eles 的结果?
我想更改样式并向 ClassName 获取的标签添加属性。
另外,我只能使用自然的 Javascript。
问题是您已将脚本放在标头中,该脚本在加载 html 元素之前执行,因此getElementsByClassName()
不会返回任何元素。
一种解决方案是等待 html 元素加载然后执行脚本,为此您可以使用窗口对象加载事件
window.addEventListener('load', function () {
var eles = document.getElementsByClassName('review');
console.log(eles);
console.log(eles.length);
console.log(eles[0]);
})
或者您可以将脚本放在底部body
元素而不是 inhead
这样当脚本被解析并执行时,元素就被加载到 dom 中
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)