给定3个元素,返回给定类的元素数

时间:2015-10-06 13:53:56

标签: javascript

给出一些像这样的HTML:

<a>foo</a>
<a class="active">bar</a>
<a>baz</a>

什么JavaScript会返回活动类的元素数?例如,如果这些是由像[].slice.call(document.getElementsByTagName('a'));这样的数组返回的,我想返回数字1,表示数组中的第二个元素。

以下是我尝试过的内容,它只是不断返回12

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标记,只需要其他元素内的标记。

1 个答案:

答案 0 :(得分:3)

您可以使用Array.prototype.indexOf.call,结合querySelectorquerySelectorAll

&#13;
&#13;
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;
&#13;
&#13;