2013-05-09 161 views
12

我认为这很简单,但我似乎无法找到正确的选择器语法。我有这样的HTML:找到子元素h2文本具有特定值的元素

<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() 

不作为找工作返回一个空集。如果我这样做:

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

我找回3个元素 - 所有这些都显示为包含统计信息的div。我可以首先添加(),但看起来有点严重。什么是正确的语法来找到一个项目?

+0

'的.text()'是用来设置文本,而不是作为一个选择或限制器你尝试使用它。 – 2013-05-09 16:44:26

+0

@SetSailMedia啊。那么这将解释为什么他们都是一样的然后:) – Nicros 2013-05-09 16:45:11

+0

:}}下面从@Joe好答案,或者你可以检查这个类似的问题和答案:http://stackoverflow.com/questions/813477/jquery-selector-where- text-some-value – 2013-05-09 16:45:53

回答

18

用途:

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

它使用:contains()选择。

+0

完美,谢谢! – Nicros 2013-05-09 16:47:29

+0

这是一条路! – 2013-05-09 16:49:29

1
$(".parent").find("h2:contains('Statistics')").each(function(){ 
    var div=$(this).parent(); 
    // use div as you want 
}) 

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

相关问题