3Dom
3Dom

Reputation: 805

get href attribute of enclosing link tag

Having a little trouble on this one. I need a way using Jquery/JS to find the HREF attribute of the enclosing link tag:

<a href="something.html"><img src="img1.jpg" class="active"></a>

I want to target the img by class and find the value of the 1st preceding href attribute.

$("img.active").somethingAwesome().attr("href");

Please show me somethingAwesome() ...help?

Upvotes: 3

Views: 9724

Answers (4)

lsuarez
lsuarez

Reputation: 4992

$("img.active").parent("a").attr("href") will get the direct parent's href attribute, assuming it's an anchor. If there's any depth of containing blocks between the image and the anchor, use instead $("img.active").closest("a").attr("href").

Upvotes: 6

simon
simon

Reputation: 16310

.parent() is all you need!

$("img.active").parent().attr("href");

Here is the documentation :)

As per Kyle's comment, and in an attempt to make something as robust as possible, you could try:

$("img.active").closest('a[href]').attr("href");

that way, even if your html looks like this:

<a href="something.html">
    <a name="anchor">
        <img src="img1.jpg" class="active">
    </a>
</a>

you'll still get what you need :)

Upvotes: 3

xkeshav
xkeshav

Reputation: 54042

$("img.active").closest('a').attr("href");

Upvotes: 0

Kyle
Kyle

Reputation: 22268

$("img.active").closest("a").attr("href");

Upvotes: 0

Related Questions