给出一些像这样的HTML:
<a>foo</a>
<a class="active">bar</a>
<a>baz</a>
什么JavaScript会返回活动类的元素数?例如,如果这些是由像[].slice.call(document.getElementsByTagName('a'));
这样的数组返回的,我想返回数字1
,表示数组中的第二个元素。
以下是我尝试过的内容,它只是不断返回1
和2
:
var tagCount = 0;
var tagArray = [].slice.call(document.getElementsByTagName('a'));
for (var a = 0; a < tagArray.length; a++) {
while (tagArray.className[a] !== "active") {
tagCount = tagCount + 1;
}
}
我不需要所有a
标记,只需要其他元素内的标记。
答案 0 :(得分:3)
您可以使用Array.prototype.indexOf.call
,结合querySelector
和querySelectorAll
:
var i = [].indexOf.call(document.querySelectorAll('a'), document.querySelector('a.active'));
console.log(i);
&#13;
<a>foo</a>
<a class="active">bar</a>
<a>baz</a>
&#13;