当前位置: 首页 > 面试题库 >

JavaScript DOM:在容器中查找元素索引

楚苏燕
2023-03-14
问题内容

我需要通过对象引用在其容器内找到元素的索引。奇怪的是,我找不到简单的方法。请不要jQuery-只有DOM。

UL
 LI
 LI
 LI - my index is 2
 LI

是的,我可以为每个元素分配ID并遍历所有节点以匹配ID,但这似乎是一个不好的解决方案。没有更好的东西吗?

因此,就像上面的示例一样,我有一个对第三个LI的对象引用。我怎么知道它是索引2?

谢谢。


问题答案:

您可以使用Array.prototype.indexOf。为此,我们需要在某种程度上“铸成” HTMLNodeCollectiontrue
Array。例如:

var nodes = Array.prototype.slice.call( document.getElementById('list').children );

然后我们可以调用:

nodes.indexOf( liNodeReference );

例:

var nodes = Array.prototype.slice.call( document.getElementById('list').children ),

    liRef = document.getElementsByClassName('match')[0];



console.log( nodes.indexOf( liRef ) );


<ul id="list">

    <li>foo</li>

    <li class="match">bar</li>

    <li>baz</li>

</ul>


 类似资料:
  • 问题内容: 我有一个看起来像这样的表: 还有其他几列与此问题无关。将它们存储为JSON是有原因的。 我要尝试的是查找具有特定 艺术家姓名 (精确匹配)的曲目。 我正在使用此查询: 例如 但是,这会进行全表扫描,而且速度不是很快。我尝试使用function创建一个GIN索引,并使用,但是未使用该索引,查询实际上要慢得多。 问题答案: 在Postgres 9.4+ 使用新的二进制JSON数据类型 ,P

  • 问题内容: 我正在尝试使用Selenium(版本2.28.0)在子元素中搜索元素,但是selenium des似乎并不将其搜索限制在子元素中。我做错了吗,还是有一种方法可以使用element.find搜索子元素? 例如,我使用以下代码创建了一个简单的测试网页: 我的python(2.6版)代码如下所示: 如果我运行: 它从第二部分返回html。因此,selenium的搜索范围并不限于element

  • 我正在尝试搜索带有Selenium(版本2.28.0)的子元素中的一个元素,但是Selenium des似乎没有将其搜索限制在子元素中。是我这样做错了,还是有办法使用Element.find搜索子元素? 对于一个示例,我使用以下代码创建了一个简单的测试网页: 我的python(2.6版)代码如下所示: 如果我跑: 它返回来自第二部分的html。所以硒并不局限于元素2。 我希望能够找到Element

  • 问题内容: 以下是我的标记 我正在尝试使用该类的元素。 我用来访问转发器的代码是: 有没有一种方法可以通过在jQuery中执行以下操作来获取元素: 有没有办法用量角器做类似的事情? 问题答案: 这应该适合您的示例:

  • 问题内容: 我有一个看起来像这样的表: 还有其他几列与此问题无关。将它们存储为JSON是有原因的。 我想做的是查找具有特定 艺术家姓名 (精确匹配)的曲目。 我正在使用此查询: 例如 但是,这会进行全表扫描,而且速度不是很快。我尝试使用function创建一个GIN索引,并使用,但是未使用该索引,查询实际上要慢得多。 问题答案: 在Postgres 9.4+ 使用新的二进制JSON数据类型 ,Po

  • 我有一张这样的桌子: 还有其他几个专栏与这个问题无关。将它们存储为JSON是有原因的。 我想做的是查找一首具有特定艺术家名称(精确匹配)的曲目。 我正在使用此查询: 举个例子 但是,这会进行全表扫描,而且速度不是很快。我尝试使用函数创建GIN索引,并使用,但是没有使用索引并且查询实际上显着变慢。