使用jQuery按文本选择href

7

I have the following html:

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

我希望能够通过语音命令选择包含“Link Here”文本的A标签。

我已经尝试过:

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

但是这并不起作用。

似乎无法找到我哪里出错了。


:contains 的意思是如果元素包含某些文本,而不是指元素的文本等于某些文本。所以你在找什么?获取具有文本“Link Here”的A标签。 - A. Wolff
2个回答

16

标签名和伪选择器之间不应该有空格。空格表示:contains("Link here")是另一个元素,而不是在a内部的同一个元素。你应该使用:

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

JSFiddle

:contains会选择一个元素,即使它在参数中有更多的内容(例如:'Link here bla bla bla'也会被返回)。如果你需要精确地选取文本为'Link here ',你可以使用filter()

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

JSFiddle


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

这个会起作用 :D


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接