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

我想定位“意大利面”一词,但不要说“yadda yadda yadda pasta”。仅单个单词“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');

这是我要成为可能的吗?

最佳答案

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

无论如何,:contains()并不是 native 选择器,因此将.filter()与自定义回调一起使用不会产生任何性能缺陷。

10-08 04:39