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

时间:2019-09-04 17:05:00

标签: javascript jquery html

我有一系列div元素,其中有些元素包含h2元素作为子元素(直接或间接(后代))。我正在寻找JavaScript或jquery来给我这样一个div元素的索引。此外,我想从特定的div元素开始搜索。我的意思是一个索引大于包含div的{​​{1}}的{​​{1}}元素。以下代码在包含x的所有h2的序列中找到那些。但是,divs中的某些内容可能不包含h2,因此应该计算在内。

divs

HTML示例:

h2

如果$(".myDivs h2:gt(2)").eq(0) 我希望类<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的第四个div的索引为3。

2 个答案:

答案 0 :(得分:1)

这是我到目前为止发现的,有效的:

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

gt起已弃用,更好的解决方案是:

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

答案 1 :(得分:0)

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

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

从start元素中找到div,然后在div中找到h2标签,然后获取h2的父div,然后获取索引。

.find(“ h2”);之后可能需要一个.each(...);