5

ページのメニュー項目を開くために使用しているブレッドクラムからのテキストがあります。たとえば、と言いますbctext = 'pasta'

「パスタ」という言葉をターゲットにしたいのですが、「ヤッダヤッダヤッダパスタ」とは言いません。単一の単語「pasta」のインスタンスのみが一致する必要があります。一致する場合、またはbctextフレーズの場合は、正確なフレーズのみが検索されます。

これは私がこれまでに持っているものです:

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

もちろん、これは「ヤッダヤッダパスタ」を見つけます。

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 に答える