2

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”,并且 :contains 在这种情况下不起作用。你能推荐一个解决方案吗?

4

3 回答 3

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
于 2012-05-31T15:33:38.607 回答
2

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

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

~=意味着左侧的属性包含右侧的字符串。

于 2012-05-31T15:33:55.707 回答
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+ '"]");
于 2012-05-31T15:31:44.943 回答