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”,并且:包含在这种情况下不起作用。你能推荐一个解决方案吗?
答案 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+ '"]");