Getting all mailto links with jQuery
Asked Answered
H

1

31

I need a pattern that will traverse the document and get me all links that have mailto in their href:

<a href="mailto:[email protected]">text</a>

I could of course easily get all a elements ($("a")) and check each href attribute to see if it points to a mailto but I think that jQuery has some form of pattern matching that will allow me to do just that.

What is the best way to achieve that?

Hexad answered 20/11, 2009 at 14:57 Comment(0)
S
70
$('a[href^="mailto:"]')

Double quotes are usually redundant, but needed in this special case, because : would otherwise be interpreted as the start of a pseudo-selector. So $('a[href^=mailto]') would also work, but in this particular scenario, the quotes are probably a neater way to go.

Shepherd answered 20/11, 2009 at 14:58 Comment(4)
I'm getting an error unless I wrap mailto in double quotes, like this $('a[href^="mailto:"]');Iggy
@tmslnz: Good catch! It's the : that necessitates the quotes. Updated.Shepherd
@KrishnaprasadVarma: That's not very informative. The code works. Something is wrong with your markup, your jQuery, your selector, the time and/or scope of execution, or in how you treat the result. Seeing as OP considered this answer to answer the question, you may be better off creating a new question, if this answer doesn't apply to you.Shepherd
@David I am sorry. The code is working. I was having a conflict with prototypeWriteup

© 2022 - 2024 — McMap. All rights reserved.