如何select具有特定文本的所有锚标签

给定多个定位标记:

<a class="myclass" href="...">My Text</a> 

如何select匹配类和一些特定文本的锚点。 例如,select所有类别为“myclass”和文本:“我的文本”

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

您可以创build类似于:contains的自定义select器:contains完全匹配:

 $.expr[':'].containsexactly = function(obj, index, meta, stack) { return $(obj).text() === meta[3]; }; var myAs = $("a.myclass:containsexactly('My Text')"); 

如果您只是在锚文本包含特定string时感到困扰,请使用@Dave Morton的解决scheme。 但是,如果你想完全匹配一个特定的string,我会build议这样的事情:

 $.fn.textEquals = function(txt) { return $(this).text() == txt; } $(document).ready(function() { console.log($("a").textEquals("Hello")); console.log($("a").textEquals("Hefllo")) }); <a href="blah">Hello</a> 

略微改进的版本(第二个修剪参数):

 $.fn.textEquals = function(txt,trim) { var text = (trim) ? $.trim($(this).text()) : $(this).text(); return text == txt; } $(document).ready(function() { console.log($("a.myclass").textEquals("Hello")); // true console.log($("a.anotherClass").textEquals("Foo", true)); // true console.log($("a.anotherClass").textEquals("Foo")); // false }); <a class="myclass" href="blah">Hello</a> <a class="anotherClass" href="blah"> Foo</a> 

首先,select包含“我的文字”的所有标签。 那么对于每一个完全匹配,如果它符合条件做你想做的事情。

 $(document).ready(function () { $("a:contains('My Text')").each(function () { $store = $(this).text(); if ($store == 'My Text') { //do Anything..... } }); }); 

如果您不知道所需对象的类别,只想在链接文本之后进行操作,则可以使用

 $(".myClass:contains('My Text')") 

如果你甚至不知道它是哪个元素(例如a,p,link,…),你可以使用

 $(":contains('My Text')") 

(只留下部分:空白。)

我不得不在这里添加它将所有从<html> -Tag开始到所需元素的元素。 我可以提供的解决scheme是添加.last() ,但只有只有一个元素才能find。 也许sbdy。 在这里知道更好的解决scheme

其实,这应该是被接受的答案的补充,尤其是@Amalgovinus问题。

我认为这应该适用于完全匹配的事情..

 $("a.myclass").html() == "your text"