使用getElementsByClassName时无法访问HTMLCollection类型。
我想要得到长度,但我不能得到
var documentHeader = parent.document.all['header'];
var motionClass = documentHeader.getElementsByClassName('motion');这是motionClass的结果
HTMLCollection []
0: div.motion
length: 1
__proto__ : HTMLColletion如果我访问长度结果为0
如何解决此问题?
发布于 2018-12-26 11:39:45
为了提供一种更现代的方法--使用documentQuerySelectorAll()获取集合--然后可以迭代给出每一项--或者给出集合的长度。
let motions = document.querySelectorAll('.motion');
console.log(motions.length); // gives 5
console.log(motions[2].textContent); // gives "3" - the text content of that element<div class='motion'>1</div>
<div class='motion'>2</div>
<div class='motion'>3</div>
<div class='motion'>4</div>
<div class='motion'>5</div>
发布于 2018-12-26 11:34:59
注意:在这里,当DOM就绪时,我们将安全地执行代码。确保你正在做这件事。
document.addEventListener('DOMContentLoaded', function() {
let motionArray = document.getElementsByClassName('motion');
console.log(motionArray.length);
});<div class='motion'>test</div>
<div class='motion'>test</div>
<div class='motion'>test</div>
<div class='motion'>test</div>
<div class='motion'>test</div>
<div class='motion'>test</div>
<div class='motion'>test</div>
https://stackoverflow.com/questions/53926973
复制相似问题