2013-04-02 103 views
0
$("#my-tab-link").on("show", function(e) { 
    console.log(e.target.href); 
    }); 

這使鏈路的href爲一個字符串:取消引用鏈接的「HREF」作爲jQuery的DOM元素

file:///...index.html?#mytab 

如何訪問該鏈接指向,而不是DOM元素只是它的URL?

我可以雜牌圍繞它是這樣的:

$(".known-parent-of-target").find($(e.target).attr("href"))[0] 

有一個更清潔的方式?

+0

嗯,HTML5或其他d octype? –

+0

你有沒有試過'document.getElementById(e.target.getAttribute(「href」))'? –

+0

是'#my-tab-link'這個錨的ID嗎? –

回答

1

怎麼樣$($(e.target).attr("href"))[0]或不jQuery的document.getElementById(e.target.getAttribute("href").substr(1))

+0

太好了 - 我喜歡你的第一個解決方案。有點鬼鬼祟祟,因爲href語法(「#link」)完全匹配jQuery ID選擇器語法(「#id」) - 但也許這是一個基本的設計決策。 –

+0

@SteveBennett:一個可能來自CSS而不是jQuery的設計決定:)'id's只要名稱一直沒有。 – Ryan

1

可能不是最優雅的方式,但它應該工作。如果你已經知道這是一個鏈接,你可以通過所有<一>就做一個循環(每個),並找出你想要的網址之一,並改變它那裏...

$.each($(a), function(i){ 
    if(e.target.href == $($(a)[i]).attr("href"){ 
    alert("holy bananas, this is the link you want!"); 
    } 
}); 
1

如果您想要爲當前頁面的散列定位一個<a>元素,例如#MYTAB

$('a[href="'+window.location.hash+'"]') 

或者從字符串/ HREF ATTRIB

var url ="file:///...index.html?#mytab"; 
var idx = url.indexOf("#"); 
var hash = idx != -1 ? url.substring(idx+1) : ""; 
$('a[href="'+hash +'"]') 
1

你可以做一個小吸塵器getElementById

var element = document.getElementById(e.target.getAttribute("href").substr(1));