2012-04-26 24 views
12
$('.test').css('background','red'); 

<div id="example">Some text</div> 

Jak mogę .addClass('test') jeśli #example zawiera słowo "tekst"?Jeśli element zawiera określony tekst

+0

:contains Co próbowałeś? Szczerze mówiąc, wygląda to na naprawdę proste użycie interfejsu API jQuery. –

+0

** 1. ** Oznacz to pytanie, dodaj "jquery" przed nim. "jquery, jeśli element zawiera określony tekst" ** 2. ** Przejdź do google i uruchom wyszukiwanie. – Joonas

Odpowiedz

16

wystarczy użyć :contains pseudoclass

$('#example:contains("text")').addClass('test'); 

to doda klasy do #example jeśli zawiera 'tekst'

+0

Idealne, dzięki! – UserIsCorrupt

6

Można użyć $("#example") uzyskać opakowanie jQuery dla elementu, a następnie użyć text() dostać jego tekst i użyj String#indexOf, np .:

var ex = $("#example"); 
if (ex.text().indexOf("text") !== -1) { 
    ex.addClass("test"); 
} 

Możesz również użyć :contains("text") w selektorze jako F. Calderan shows, chociaż należy pamiętać, że gdy używasz niestandardowych pseudo-selektorów w ten sposób, jQuery nie może korzystać z wbudowanych elementów bazowych przeglądarki do znajdowania elementów, więc może być wolniejsze. Powyższe pozwoli jQuery używać document.getElementById. Jest tylko kilka sytuacji, w których prędkość naprawdę ma znaczenie.

1

spróbować następujący kod

$('#example:contains("text")').addClass('test'); 

Sprawdźcie here dla przykładów i wyjaśnień selektora

+0

Myślę, że test wewnątrz zawiera tekst. – Zafer

+0

@Zafer Typo, dziękuję! :) –

Powiązane problemy