20

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

我已经尝试过'$this a',但无法完全确定语法。

$("ul li").click(function(event){
  $("input").val($(this).html());             
});
<ul>
    <li><a href="http://www.google.com" id="google">Google</a>
</ul>
4

3 回答 3

56

我没有看到示例 HTML,但是

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

会这样做(如果不是您的意思,请修复a:first选择器)

指的是触发您的事件的元素

于 2008-12-11T13:52:12.830 回答
4

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

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

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

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

现在你可以用这个变量做任何你想做的事情:)

希望这可以帮助 :)

于 2008-12-11T14:22:18.573 回答
2

您可以使用以下children方法:

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

我不确定语法,但是这样的东西应该可以。

于 2008-12-11T14:21:46.437 回答