5

我有一些来自面包屑的文本,用于打开页面上的菜单项。例如,说bctext = 'pasta'.

我想定位“意大利面”这个词,但不说“yadda yadda yadda Pasta”。只有单个单词“pasta”的实例应该匹配,或者如果bctext是一个短语,那么它只会找到确切的短语。

这是我到目前为止所拥有的:

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

但这当然会找到“yadda yadda Pasta”。

我得到bctext以下内容:

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

然后,我使用以下内容编辑菜单:

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

我追求的可能吗?

4

1 回答 1

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

:contains()无论如何都不是本机选择器,因此.filter()与自定义回调一起使用不会有任何性能缺陷。

于 2012-04-30T17:40:33.630 回答