如何获取包含特定子元素的元素的索引

3

我有一系列的 div 元素,其中一些包含 h2 元素作为子元素(直接或间接(后代))。我正在寻找一个JavaScript或jQuery来给我这样一个div元素的索引。此外,我想从特定的

元素开始搜索。我的意思是从包含h2的索引大于x
元素开始搜索。以下代码查找所有包含h2
序列中的
。但是,其中一些
可能不包含h2,应该计入。

$(".myDivs h2:gt(2)").eq(0)

HTML 示例:

<div class='myDivs'></div>
<div class='myDivs'><h2>Hi</h2></div>
<div class='myDivs'></div>
<div class='myDivs'><div><h2>How are you</h2></div></div>
<div class='myDivs'></div>

如果x=2,我想要找到第四个带有h2元素并且class为myDivsdiv的索引值为3。

2个回答

1
这是我目前找到的,可以正常工作:

$(".myDivs:gt("+x+"):has(h2)").eq(0).index()

由于 gt 已被弃用,更好的解决方案是:

$(".myDivs").slice(x).has("h2").first().index()

0

基本上,我认为你想要一个类似于这样的jquery:

$(start).find("div").find("h2").parent("div").index();

从起始元素开始,找到你的div,然后在div中找到h2标签,接着获取这些h2标签的父级div,最后得到其索引。
在.find(“h2”)之后,你可能需要一个.each(...)。

2
find("div").find("h2").parent("div") 可以简化为 $("div:has(h2)"):has - isherwood

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接