我可以使用jQuery按内容选择文本节点吗?

And*_*rov 6 jquery jquery-selectors

<a href="...">foo</a>知道如何选择DOM节点foo

Nic*_*ver 14

你可以.filter()像这样使用:

$("a").filter(function() {
  return $(this).text() === "foo";
}).doSomething();
Run Code Online (Sandbox Code Playgroud)

:contains()如果您不需要完全匹配,还有选择器,如下所示:

$("a:contains('foo')").doSomething();
Run Code Online (Sandbox Code Playgroud)

如果您要查找的文本位于元素中的任何位置,则此方法不起作用.


或者,如果您想要完全匹配并经常进行匹配,请为此创建一个选择器,如下所示:

$.expr[":"].textEquals = function(obj, index, meta) { 
  return $(obj).text() === meta[3]; 
} 
Run Code Online (Sandbox Code Playgroud)

然后你可以随时使用它,像这样:

$("a:textEquals('foo')").doSomething();
Run Code Online (Sandbox Code Playgroud)