2010-01-26 40 views
1

假設我有這樣的:獲得「HREF」另一個元素中的錨的價值

<ul id="menu"> 
<li><a href="someplace">some text</a><li> 
... 
</ul> 

我要盡一切li點擊,所以我需要提取的href這樣的值:

$('#menu li').click(function() { 
    var link_to = $(SELECTOR THAT I NEED).attr('href'); 
    window.location = link_to; 
}); 

這是什麼正確的代碼?有沒有更好的辦法?

+0

爲什麼要綁定點擊li?..爲什麼不讓錨點做它做的?將錨點的CSS更改爲高度:100%和寬度:100% – Reigel 2010-01-26 13:41:02

+0

因爲我沒有想到這一點:)請參閱我對以下答案的評論 – 2010-01-26 13:43:57

回答

2

既然你有一個鏈接在那裏,爲什麼不使用它呢?

你可以用css其設置爲display:block,如果你想讓它佔據整個li寬度..

#menu li a{display:block;} 

,並避免使用jquery的內置功能。(如果我理解正確的..

+0

好點,沒想到'display:block'。這並不理想,因爲'li'元素的填充位於'a'塊之外,因此「死」。 – 2010-01-26 13:42:01

+0

是的,你是對的..但它是值得一槍,而不知道你到底是什麼:)上面asnwers應該做到這一點然後.. – 2010-01-26 13:43:58

+0

我會投票這一個並刪除我自己的職位。當錨在語義上處理onclicks時,有很多點擊綁定顯然是多餘的。我會說這絕對是值得的CSS去除李創建的填充。 – 2010-01-26 14:14:32

3
$('#menu li').click(function() { 
    var link_to = $(this).children("a").eq(0).attr('href'); 
    window.location = link_to; 
}); 
+0

我個人更喜歡'$(this).children(「a:第一個「)。attr(」href「)' – 2010-01-26 13:48:19

+0

'$('a:first',this)'是避免必須通過'$'函數運行單擊'li'的一種簡單方法。以這種方式提供上下文與'find'完全相同。我已經投下了我不願意做的選擇,但我認爲這篇文章及其評論對於那些偶然發現這個問題的人來說是一份有效的文檔,有一個*類似的*自己的問題,其中Gaby的答覆不適用=) – 2010-01-26 14:33:27