2009-12-10 13 views
5

私はテキストのアンカータグを持っており、指定されたvarが文字列と正確に一致するかどうかをチェックしたいと思います。jQueryのテキストの一致

これは機能しますが、指定された文字列を含む場合は2つの要素と一致するため、contains以外のものを使用したいと思います。私はそれが正確に一致するようにします。

アイデア?

function test(submenu){ 
$('a:contains("' + submenu + '")', 'ul.subMenu li').css('font-weight', 'bold'); 
} 

答えて

15

:containsフィルタの代わりに.filter()関数を使用して、セレクタの結果セットにカスタムフィルタを適用することができます。

この場合、完全一致のテキストを検索するカスタムフィルタを適用します。次のようなものがあります:

$('a').filter(function (index) { 
    return $(this).text() == submenu; 
}) 
    .css('font-weight', 'bold'); 
+1

境界空白を無視する必要がある場合は、次のように微調整するだけです:$ .trim($(this).text())==サブメニュー – micahwittman

2

あなたが探しているものは以下です:しかし、私はこの作品」、あなたは何を意味するかわからないんだけど、私は含まれ以外のものを使用したい

function test(submenu) 
{ 
    if ($("ul.submenu li a").text() == submenu) 
    { 
     // do whatever here 
    } 
} 

指定された文字列が含まれている場合は2つの要素と一致するので、正確に一致させる必要があります。

+1

おそらく、 '='を '=='に置き換えたいでしょう。 ;) –

+0

サブメニュー= 'ニュース'の場合は、 'News'と 'Testing News'のテキストとのリンクに一致するため、両方にCSSを適用します。 – Gabe

+2

以上:=== – cobbal

関連する問題