2012-04-30 2 views
5

У меня есть текст из сухаря, который я использую, чтобы открыть пункты меню на странице. Например, скажем bctext = 'pasta'.jquery найти точную строку, не более или менее

Я хочу указать слово «макароны», но не сказать «yadda yadda yadda pasta». Только экземпляр единственного слова «макароны» должен совпадать, или если bctext были фразой, тогда он найдет только точную фразу.

Это то, что я до сих пор:

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

Но это находит "Yadda Yadda макароны", конечно.

я получаю bctext следующим:

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

Затем я редактирую меню со следующим:

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

Это то, что я буду за это возможно?

ответ

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

:contains() не является нативным селектор в любом случае, так используя .filter() с обратного вызова не будет иметь никаких недостатков производительности.

+0

так жаль, что мой jquery не большой ... я собираюсь добавить больше моего кода выше, потому что я не уверен, как это сделать в том, что я сделал. – liz

+0

так что выше я добавил, что полный код. так что теперь просто ясно. (и, возможно, у меня все это неправильно). Я использую функцию фильтра, чтобы найти текст в теге и дать ему переменную, а затем сравнить это с bctext, который я нашел в панировке? – liz

+0

Я обновил свой ответ. – ThiefMaster

Смежные вопросы