Jquery 获取封闭链接标记的href属性

Jquery 获取封闭链接标记的href属性,jquery,parent,attr,Jquery,Parent,Attr,在这件事上有点麻烦。我需要一种使用Jquery/JS查找封闭链接标记的HREF属性的方法: <a href="something.html"><img src="img1.jpg" class="active"></a> 请给我看一些Wesome()…帮助?。parent()是您所需要的一切 $("img.active").parent().attr("href"); :) 根据Kyle的评论,为了尽可能使某些东西更加健壮,您可以尝试: $("img.ac

在这件事上有点麻烦。我需要一种使用Jquery/JS查找封闭链接标记的HREF属性的方法:

<a href="something.html"><img src="img1.jpg" class="active"></a>
请给我看一些Wesome()…帮助?

。parent()
是您所需要的一切

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

根据Kyle的评论,为了尽可能使某些东西更加健壮,您可以尝试:

$("img.active").closest('a[href]').attr("href");
这样,即使您的html如下所示:

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


您仍然可以获得所需的:)

$(“img.active”).parent(“a”).attr(“href”)
将获得直接父级的href属性,假设它是一个锚。如果图像和锚点之间存在任何深度的包含块,请改用
$(“img.active”).nestest(“a”).attr(“href”)
$(“img.active”).nestest(“a”).attr(“href”)

如果锚点和图像之间存在另一个元素,则此操作将不起作用。应该使用closest()。他想要“前面的第一个href属性”是的,好的,很公平,这是一个完全有效的解释。这个例子是否具有代表性还不是100%清楚。但如果我们假设不是这样,那么还有其他各种可能的问题。例如,如果中间有一个
元素呢
.closest('a')
也将失败,并且需要
.closest('a[href]')
!理解。“无意伤害。@simon我认为在锚定图像和其祖先之间有一个包含块的更常见的用例是
。嵌套锚创建语法无效的上下文。+1用于使用最近的上下文而不是父上下文。这使得重构更加安全,性能也没有差别。太棒了!谢谢这是一个很难回答的问题。我想这也很容易。好的老Jquery。作为一个附带问题,在文档上下进行最近的搜索。如果它同时向上和向下检查“最近的”,则“最近的”太不可预测了。@3Dom.closest向上搜索祖先。如果你想找到后代,你会想去感谢bodeaux,这对我这样的noob真的很有帮助。请尽情享受成为我班上最聪明的人的荣耀。我今天的理论是:一个问得好的问题就是回答了一半的问题。如果我有多个示例代码实例,而其中只有两个实例有锚呢?我想知道标签是否包装在HREF标签中。parent()是我在这方面遇到的最好的东西,但是你的所有评论对我帮助很大
<a href="something.html">
    <a name="anchor">
        <img src="img1.jpg" class="active">
    </a>
</a>
$("img.active").closest('a').attr("href");