2011-09-28 132 views
1

我需要能夠獲得任何被點擊的<a>標籤的href(或以某種方式獲取目標url),即使它正在包裝另一個元素。例如,你可以做一般:獲取點擊包裝錨點的href

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

然而,在這個例子中,<a>包裝的<img>,因此事件的目標不會有href。使用parentNode沒有不太妙,因爲也有圍繞該示例中的IMG跨度:

http://jsfiddle.net/z7ZYw/

我也不會改變選擇。

那麼在這種情況下有沒有辦法獲得href?

回答

3

您正在尋找jQuery的closest方法:

$(e.target).closest('a'); 
2

,您只需要在錨標籤綁定:

$("a[href]").click(function() { 
    console.log($(this).attr("href")); 
}); 
+0

我說我不能改變選擇器。 –

+0

哦,真可惜。在這種情況下,您可以使用@SLaks解決方案。 –

3

作爲一個說明,這是可以做到無jQuery的藏漢:

var href = (e.target.parentNode && e.target.parentNode.href) ? e.target.parentNode.href : e.target.href; 
+1

耶!感謝非jQuery解決方案! (並不是我不喜歡jQuery。) – bergie3000