17

我认为这真的很简单,但我似乎找不到正确的选择器语法。我有这样的html:

<div class="parent">
    <h2>Summary</h2>
    <p>... bunch of content ...</p>
</div>
<div class="parent">
    <h2>Statistics</h2>
    <p>... bunch of content ...</p>
</div>
<div class="parent">
    <h2>Outcome</h2>
    <p>... bunch of content ...</p>
</div>

我想找到其 h2 子项包含文本“统计”的 div。

我尝试了以下各种组合:

$(".parent").find("h2[text='Statistics'").parent()

这不起作用,因为 find 返回一个空集。如果我这样做:

$(".parent").find("h2").text("Statistics").parent()

我得到了 3 个元素——所有这些元素似乎都是包含统计信息的 div。我可以添加 first() ,但这似乎有点恶心。找到该项目的正确语法是什么?

4

3 回答 3

23

利用:

$(".parent").find("h2:contains('Statistics')").parent();

这使用:contains()选择器。

于 2013-05-09T16:44:33.187 回答
3
$(".parent").find("h2:contains('Statistics')").each(function(){
    var div=$(this).parent();
   // use div as you want
})

工作 http://jsfiddle.net/SayjQ/

于 2013-05-09T16:47:00.780 回答
1

使用 HAS 怎么样

$(".parent:has(h2:contains('Statistics'))")
于 2018-08-29T12:30:34.140 回答