2012-05-31 34 views
2

有jQuery的選擇 - :含有jQuery的「:包含」替代了鏈接

例子:

str = 'test'; 
blocked_div = $(".mydiv:contains("+str+")"); 
blocked_div.find('img').hide(); 
... 
<a href="http://example.com">test</a> 
... 

據我所知這是搜索「測試」文本」 .mydiv內「元素。 但現在我需要在「.mydiv」元素中找到一個鏈接「http://example.com」,並且:包含在這種情況下不工作。你能推薦一個解決方案來做到這一點?

回答

3

鏈接你的意思是:

$(".mydiv a[href='example.com']"); 

您還可以使用*=^=過濾器找到包含指定文本的鏈接a在哪裏或在字符串的開始分別。

// find links containing "example" in href at any place 
$(".mydiv a[href*='example']"); 

爲了您str變量,你可以修改它想:

$('.mydiv a[href=' + str + ']'); // exact match 
$('.mydiv a[href*=' + str + ']'); // contains str anywhere in href 
1

更改像以下選擇:

var str = 'test'; 
$(".mydiv a:contains("+str+")").attr('href'); // return `href` attribute of that `a` 
               // contains string test 

要獲得與特定href

var str = 'http://example.com'; 
$(".mydiv a[href="'+ str+ '"]"); 
+0

這是檢查文本;他問的是如何檢查href。 – Mathletics

2

要測試該字符串是否包含在HREF?這應該做到這一點:

$('.mydiv a[href~='+str+']'); 

~=意味着左邊的屬性包含右邊的字符串。