我需要能够获得被点击的任何<a>
标签的href(或以某种方式获取目标网址),即使它正在包装另一个元素。例如,您通常可以这样做:
$("document").click(function (event) {
url = event.target.href;
});
但是,在此示例中,<a>
包含<img>
,因此事件目标不会包含href
。使用parentNode
也不好,因为示例中的img周围也有一个范围:
我也无法更改选择器。
那么有没有办法在这种情况下获得href?
答案 0 :(得分:3)
您正在寻找jQuery的closest
方法:
$(e.target).closest('a');
答案 1 :(得分:3)
作为一个注释,这可以在没有jQuery的情况下完成:
var href = (e.target.parentNode && e.target.parentNode.href) ? e.target.parentNode.href : e.target.href;
答案 2 :(得分:2)
您只需要绑定锚标记:
$("a[href]").click(function () {
console.log($(this).attr("href"));
});