2008-12-11 88 views
14

我有一個鏈接列表中有一個點擊事件附加到他們,我需要從孩子的鏈接獲得ID。所以在下面的例子中,如果我點擊第一個列表元素,我需要谷歌重新調整。我試過'$this a',但不能完全解決語法問題。jQuery單擊元素的孩子

jQuery: 

$("ul li").click(function(event){ 
$("input").val($(this).html());   
    } 
); 



html: 
<ul> 
    <li><a href="http://www.google.com" id="google">Google</a> 
</ul> 

回答

40

我沒有看到樣品HTML但

$(this).find('a:first').attr('id') 

會做到這一點(解決一:第一選擇,如果它不是你的意思)

指發起事件的元素

+0

我只是盲目的:) – smoothdeveloper 2008-12-11 13:54:45

+0

太感謝您了:) – Tom 2008-12-11 14:02:04

+0

是的,這肯定是它。 – 2008-12-11 14:23:48

1

您可以使用children方法:

$(this).children('a').eq(0).attr('id'); 

我不確定語法,但類似的東西應該工作。

4

爲了使您的代碼變得更簡潔,讓綁定,象這樣的功能觸發器: (我建議你給UL的ID,因此它是特定於UL中僅元素)

$('ul li').bind('click', getAnchorId); 

功能(getAnchorId)獲取被單擊元素(ul li)的children元素(a)的ID屬性,並將其應用於變量(anchorId),並顯示其獲取正確的信息,並將結果放入警報。

function getAnchorId() { 
    var anchorId = $(this).children('a').attr('id'); 
    alert(anchorId); 
} 

現在ü可以做什麼都ü希望與該變量:)

希望這有助於:)

相關問題