DOM数组中的位置

Position in DOM array

本文关键字:位置 数组 DOM      更新时间:2024-01-26

您可以通过document.getElementsByTagName("a")[x]查找元素的DOM位置,但是否可以在其属性列表中的某个位置找到x值?

如果我有

<a>z</a> <!-- 0 -->
<a>2</a> <!-- 1 -->
<a>potato</a> <!-- 2 -->

这些是它们根据DOM的顺序。我试图找出是否有一个属性附加到那些包含其DOM位置的属性上。

您所说的x值取决于用于检索节点的dom查询。因此,它不能是节点上的属性。例如,这两个查询可能返回一些相同的节点。

<a>z</a> // 0
<a class="link" id ="number1">2</a> // 1
<a class="link" >potato</a> // 2

document.getElementsByTagName("a");
// this returns a different set of nodes
document.getElementsByClass(".link");

你能做什么,然而

var node1 = document.getElementById('number1');
var index= document.getElementsById('a').indexOf(node1);

根据我的理解,您想要的是基于给定节点在锚元素数组中找到位置?

var nodes = document.getElementsByTagName('a'),
node = ...; // random anchor
var index = nodes.indexOf(node); // -1 = not found

这使用了Array.indexOf(),这在所有浏览器上都不可用;有关userland实现,请参阅此链接。

也许您正在寻找jQuery第n个子选择器,它以相对于其兄弟的给定数字返回节点

<a>z</a> <!-- 0 -->
<a>2</a> <!-- 1 -->
<a>potato</a> <!-- 2 -->

javascript:

 console.log(
   $("a:nth-child(1)")
 );