获取点击包装锚点的href

时间:2011-09-28 14:29:01

标签: javascript jquery events

我需要能够获得被点击的任何<a>标签的href(或以某种方式获取目标网址),即使它正在包装另一个元素。例如,您通常可以这样做:

$("document").click(function (event) {
   url = event.target.href;
});

但是,在此示例中,<a>包含<img>,因此事件目标不会包含href。使用parentNode也不好,因为示例中的img周围也有一个范围:

http://jsfiddle.net/z7ZYw/

我也无法更改选择器。

那么有没有办法在这种情况下获得href?

3 个答案:

答案 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"));
});