2009-12-10 37 views
5

我有一個帶有文本的錨標記,我想檢查給定的var是否與該字符串完全匹配。jQuery文本匹配

這有效,但我想使用除包含以外的東西,因爲如果包含給定的字符串它將匹配兩個元素。我希望它完全匹配。

任何想法?

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

回答

15

您可以使用.filter()函數而不是:contains過濾器將自定義過濾器應用於選擇器結果集。

在這種情況下,應用自定義過濾器以查找完全匹配的文本。例如:

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

如果邊界空白需要忽略,只需調整:$ .trim($(this).text())==子菜單 – micahwittman 2009-12-10 21:04:15

2

這是你在找什麼:

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

不過,我不知道你所說的,「這工作,但我想用比包含其他的東西,因爲如果包含給定的字符串,它將匹配兩個元素,我希望它完全匹配。「

+1

您可能想用'=='替換'='。 ;) – 2009-12-10 21:00:20

+0

如果子菜單='新聞',那麼它會匹配一個文本'新聞'和'測試新聞'的鏈接,因此應用這兩個CSS。 – Gabe 2009-12-10 21:01:37

+2

或更好:=== – cobbal 2009-12-10 21:02:16