获取点击包装锚点的href
问题描述:
我需要能够获得任何被点击的<a>
标签的href(或以某种方式获取目标url),即使它正在包装另一个元素。例如,你可以做一般:获取点击包装锚点的href
$("document").click(function (event) {
url = event.target.href;
});
然而,在这个例子中,<a>
包装的<img>
,因此事件的目标不会有href
。使用parentNode
没有不太妙,因为也有围绕该示例中的IMG跨度:
我也不会改变选择。
那么在这种情况下有没有办法获得href?
答
您正在寻找jQuery的closest
方法:
$(e.target).closest('a');
答
,您只需要在锚标签绑定:
$("a[href]").click(function() {
console.log($(this).attr("href"));
});
答
作为一个说明,这是可以做到无jQuery的藏汉:
var href = (e.target.parentNode && e.target.parentNode.href) ? e.target.parentNode.href : e.target.href;
+1
耶!感谢非jQuery解决方案! (并不是我不喜欢jQuery。) – bergie3000
我说我不能改变选择器。 –
哦,真可惜。在这种情况下,您可以使用@SLaks解决方案。 –