2013-11-28 55 views
4

我有以下的html:jQuery的选择HREF通过文字

<a href="#DDD">Link here </a> 

而且希望能够说得到具有我已经尝试文本“的链接在这里”

A标签来选择它:

$('a[value="Link here"]') 
    $('a :contains("Link here")') 

但这不起作用。

不能看到我要去哪里错了。

+0

“得到它具有A标签文本“Link Here”=>':contains'表示元素**包含**某些文本,而不表示元素文本**等于**某些文本。你在找什么? –

回答

13

标记名和伪选择器之间不应有空格。空格表示:contains("Link here")是另一个元素,里面的a,不一样。你应该用:

$('a:contains("Link here")') 

JSFiddle

:contains将选择一个元素,即使有比参数更多(即:“链接此处唧唧歪歪”将返回)。如果您需要在文本内进行精确 '链接此处',你可以使用filter()

$('a').filter(function(){ 
    return this.innerHTML == 'Link here '; // (Did you know you have a space at the end?) 
}).css({background:"#F00"}); 

JSFiddle

2
$("a.myclass:contains('Text')") 

这要工作:d