jQuery“:包含”链接的替代品

时间:2012-05-31 15:30:50

标签: javascript jquery

jQuery中有一个选择器 - :contains

示例:

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 个答案:

答案 0 :(得分:3)

你的意思是:

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

您还可以使用*=^=过滤器来查找包含指定文本的链接,无论是在任何地方还是在字符串的开头。

// 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 :(得分:2)

您想测试字符串是否包含在HREF中?这应该做到:

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

~=表示左侧的属性包含右侧的字符串。

答案 2 :(得分: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+ '"]");