Using jQuery, I want to select a link that contains exactly some kind of text. For example:
<p><a>This One</a></p>
<p><a>"This One?"</a></p>
<p><a>Unlikely</a></p>
I have tried this:
$('a:contains("This One")')
But it picks the first AND the second link. I just want the first link, which contains exactly "This One". How can I do that?
You can do this:
$('a').filter(function(index) { return $(this).text() === "This One"; });
Reference: http://api.jquery.com/filter/
A coworker of mine extended jQuery with a function to do this:
$.expr[':'].textEquals = function(a, i, m) {
return $(a).text().match("^" + m[3] + "$");
};
The result is that you can select something by exact text this way:
$("label:textEquals('Exact Text to Match')");
This makes it easy, since you don't have to remember the exact syntax each time. His entire post is here: jQuery Custom Selector for selecting elements by exact text :textEquals
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With