我有一些来自痕迹的文本,我用它来打开页面上的菜单项.例如,说出来bctext = 'pasta'.
我想以"面食"为目标,但不要说"yadda yadda yadda pasta".只有单个单词"pasta"的实例应该匹配,或者如果bctext是短语,那么它只会找到确切的短语.
这是我到目前为止:
$('ul#accordion a:contains(' + bctext + ')')
Run Code Online (Sandbox Code Playgroud)
但当然,这会发现"yadda yadda pasta".
我得到bctext以下内容:
var bctext = $('#CategoryBreadcrumb ul li:last-child').prev().children().text();
Run Code Online (Sandbox Code Playgroud)
然后,我使用以下内容编辑菜单:
$('ul#accordion a:contains(' + bctext + ')').parent()
.addClass('special')
.children('ul')
.css('display','block');
Run Code Online (Sandbox Code Playgroud)
我想要的是什么?
Thi*_*ter 14
$('ul#accordion a').filter(function() {
return $(this).text() == bctext;
}).parent().addClass('special').children('ul').css('display','block');
Run Code Online (Sandbox Code Playgroud)
:contains()无论如何都不是本地选择器,因此使用.filter()自定义回调不会有任何性能缺陷.