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?
To expand on FishBasketGordo's answer. If you are trying to make the selection on a large amount of elements, use
:contains()
first to narrow down and then apply the filter.This will improve the overall speed:
I feel like I'm missing something based on everyone else's answer to filter but why not just select the first item within the array of elements that's returned by 'contains'?This works, only if you know that the first link has the exact match you're looking for. Other answers work better, if you're not sure which order the links will be in.
had to modify Nariman's solution to be:
Otherwise didn't work on chrome (Linux)
I was using the extension
But I have found that the implementation no longer works with jQuery 1.7 (apparently a change in Sizzla.filter). After struggling for some time to make it work I have simply written a jQuery plugin to accomplish the same.
Use:
Just wanted to share, in case someone else runs into this (,
Sorry, if this exactly matches anybody's answer above,
Here is some output in the Linkedin search result page console.
It has case sensitivity support as well and is not using
:contains()
Edit (May 22, 2017) :-
You can do this:
Reference: http://api.jquery.com/filter/