2013-05-09 114 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/

相關問題