给定3个元素,返回具有给定类的元素的编号

Given 3 elements, return the number of the element with a given class

本文关键字:元素 编号 3个 返回 给定      更新时间:2023-09-26

给一些像这样的HTML:

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

什么JavaScript将返回元素的编号与活动类?例如,如果这些是由像in: [].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标签,只是那些在另一个元素。

您可以将Array.prototype.indexOf.callquerySelectorquerySelectorAll结合使用:

var i = [].indexOf.call(document.querySelectorAll('a'), document.querySelector('a.active'));
console.log(i);
<a>foo</a>
<a class="active">bar</a>
<a>baz</a>