2012-04-30 10 views
5

Mam trochę tekstu z bułki tartej, której używam do otwierania pozycji menu na stronie. Na przykład powiedzmy bctext = 'pasta'.jquery znajdź dokładny ciąg z mniejszą lub mniejszą wartością

Chcę kierować słowo "makaron", ale nie mówię "makaron yadda yadda yadda". Tylko jedna instancja pojedynczego słowa "pasta" powinna pasować, lub jeśli bctext jest frazą, to znajdzie tylko dokładną frazę.

To, co mam tak daleko:

$('ul#accordion a:contains(' + bctext + ')') 

Ale ten znajdzie „bla bla makaron”, oczywiście.

uzyskać bctext z następujących czynności:

var bctext = $('#CategoryBreadcrumb ul li:last-child').prev().children().text(); 

Potem edytować menu z następującymi zasadami:

$('ul#accordion a:contains(' + bctext + ')').parent() 
              .addClass('special') 
              .children('ul') 
              .css('display','block'); 

Czy to, co mam zamiar za możliwe?

Odpowiedz

14
$('ul#accordion a').filter(function() { 
    return $(this).text() == bctext; 
}).parent().addClass('special').children('ul').css('display','block'); 

:contains() nie jest rodowitym selektor tak więc używając .filter() z niestandardowym zwrotnego nie będzie miał żadnych wad wydajności.

+0

przepraszam, mój jquery nie jest wielki ... zamierzam dodać więcej mojego kodu powyżej, ponieważ nie jestem pewien, jak to zrobić w to, co zrobiłem. – liz

+0

tak powyżej dodałem pełny kod. więc teraz po prostu dla jasności. (i może mam to wszystko źle ...) Używam funkcji filtrowania, aby znaleźć tekst w tagu i dać mu zmienną, a następnie porównać to z tekstem znalezionym w ścieżce nawigacyjnej? – liz

+0

Zaktualizowałem moją odpowiedź. – ThiefMaster

Powiązane problemy