2012-04-30 16 views
5

Tengo un texto de una ruta de exploración que estoy usando para abrir elementos de menú en una página. Por ejemplo, diga bctext = 'pasta'.jquery buscar la cadena exacta con no más o menos

Quiero apuntar a la palabra "pasta", pero no digo "yadda yadda yadda pasta". Solo una instancia de la palabra única "pasta" debe coincidir, o si bctext fuera una frase, entonces solo encontraría la frase exacta.

Esto es lo que tengo hasta ahora:

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

Pero esto encuentra "bla bla pasta", por supuesto.

tengo la bctext con lo siguiente:

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

Entonces, editar el menú con lo siguiente:

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

Es lo que voy a posibles?

Respuesta

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

:contains() no es un selector de modo nativo utilizando todos modos .filter() con una devolución de llamada personalizado no tendrá ningún inconvenientes de rendimiento.

+0

lo siento mi jquery no es genial ... voy a agregar más de mi código anterior porque no estoy seguro de cómo hacer esto en lo que hice. – liz

+0

tan arriba agregué el código completo. ahora solo para ser claro. (y tal vez tengo todo esto mal ...) uso la función de filtro para encontrar el texto en la etiqueta a y darle una variable y luego comparar eso con el bctext que encontré en la ruta de navegación? – liz

+0

He actualizado mi respuesta. – ThiefMaster

Cuestiones relacionadas