2013-05-09 10 views
12

Penso che sia molto semplice, ma non riesco a trovare la sintassi corretta del selettore. Mi è piaciuto molto questo:Trova elemento in cui elementi secondari h2 testo ha un valore specifico

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

Voglio trovare il div di cui figlio h2 contiene il testo "Statistiche".

ho provato varie combinazioni di:

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

che non funziona come il ritrovamento restituisce un insieme vuoto. Se faccio questo:

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

Torno indietro 3 elementi, tutti i quali sembrano essere il div contenente Statistiche. Potrei aggiungere prima(), ma sembra un po 'grossolano. Qual è la sintassi corretta per trovare quell'elemento?

+0

'.text()' viene utilizzato per impostare il testo, non come un selettore o un limitatore di come hai provato a usarlo. –

+0

@SetSailMedia Ah. Beh, questo spiegherebbe perché erano tutti uguali :) – Nicros

+0

:}} Buona risposta qui sotto da @Joe, oppure puoi controllare q & a simile: http://stackoverflow.com/questions/813477/jquery-selector-where- text-some-value –

risposta

18

Usa:

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

Questo utilizza il selettore :contains().

+0

Perfetto, grazie! – Nicros

+0

Questa è una strada da percorrere! –

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

Lavorare http://jsfiddle.net/SayjQ/

Problemi correlati