2012-04-30 12 views
5

Ho del testo da un breadcrumb che sto usando per aprire voci di menu in una pagina. Ad esempio, dì bctext = 'pasta'.jquery trova la stringa esatta senza più o meno

Voglio indirizzare la parola "pasta", ma non dire "yadda yadda yadda pasta". Solo un'istanza della singola parola "pasta" deve corrispondere, oppure se bctext fosse una frase, quindi troverà solo la frase esatta.

Questo è quello che ho finora:

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

Ma questo reperti "bla bla di pasta", naturalmente.

ho la bctext con il seguente:

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

Poi, ho modificare il menu con il seguente:

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

è quello che sto andando per possibile?

risposta

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

:contains() non è un selettore nativa comunque, quindi utilizzando .filter() con un callback personalizzato non avranno alcun inconvenienti prestazioni.

+0

mi spiace che il mio jquery non sia eccezionale ... aggiungerò altro codice sopra perché non sono sicuro di come farlo in quello che ho fatto. – liz

+0

così sopra ho aggiunto il codice completo. quindi ora solo per essere chiari. (e forse ho sbagliato tutto ...) uso la funzione filtro per trovare il testo nel tag e dargli una variabile e quindi confrontarla con il testo che ho trovato nel breadcrumb? – liz

+0

Ho aggiornato la mia risposta. – ThiefMaster

Problemi correlati