单击元素的jQuery子级

单击元素的jQuery子级,jquery,jquery-selectors,Jquery,Jquery Selectors,我有一个链接列表,其中有一个点击事件附加到他们,我需要从孩子的ID链接。因此,在下面的示例中,如果我单击第一个列表元素,我需要谷歌重新调整 我已经尝试了“$this a”,但无法完全理解语法 $("ul li").click(function(event){ $("input").val($(this).html()); }); 我没有看到示例HTML,但是 $(this).find('a:first').attr('id') 会这样做(如果不是您的意思,

我有一个链接列表,其中有一个点击事件附加到他们,我需要从孩子的ID链接。因此,在下面的示例中,如果我单击第一个列表元素,我需要谷歌重新调整

我已经尝试了
“$this a”
,但无法完全理解语法

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

我没有看到示例HTML,但是

$(this).find('a:first').attr('id')
会这样做(如果不是您的意思,请修复:第一个选择器)

指触发事件的元素

您可以使用以下方法:


我不确定语法,但类似的东西应该可以工作。

为了使代码更整洁,让我们用如下函数绑定触发器: (我建议您向UL提供一个ID,以便它只针对该UL中的元素)

被调用的函数(getAnchorId)获取被单击元素(ul li)的子元素(a)的ID属性,并将其应用于变量(anchorId),为了显示其获取正确信息,我将结果放入警报中

function getAnchorId() {
    var anchorId = $(this).children('a').attr('id');
    alert(anchorId);
}
现在你可以用这个变量做任何你想做的事情:)


希望这有帮助:)

这是非常主观的,我个人更喜欢使用匿名函数,特别是因为这是非常具体的。同意,使用绑定只是额外的按键操作,而不是使用。单击。使用数组索引器会返回一个dom对象,因此.attr方法将不存在并出错。您需要$(this.children('a')[0].id或$(this.children('a').get(0.id)或$(this.children('a').attr('id');您确定它返回一个DOM对象吗?不管怎样,我说我不确定,我会在某个时候测试它,如果它错了,我会纠正它。我通过使用
.eq(int)
修复了它,它在指定的索引处返回jQuery元素。我可以建议:jQuery(this).find('a:first').attr('id')?我只是在一个原型项目中遇到了一个冲突。
$(this).children('a').eq(0).attr('id');
$('ul li').bind('click', getAnchorId);
function getAnchorId() {
    var anchorId = $(this).children('a').attr('id');
    alert(anchorId);
}