2008-12-11 90 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); 
} 

现在ü可以做什么都ü希望与该变量:)

希望这有助于:)

相关问题