选择动态创建的链接的子元素的id

时间:2013-08-23 14:49:23

标签: jquery

我正在尝试选择在另一个动态元素<li>标记下创建的<a>元素的ID。我似乎无法处理<li>的id。我最接近的是:

 $("a li:first-child").attr('id');

但只会给出第一个li的id,而不是被点击的id。

这是我截断的脚本,因为唯一的第一部分很重要:

$.each(...
    $("#inventoryDiv").append("<ul id='invList'></ul>");                                                
    $("#invList").append("<a href='javascript:void(0);' name='invLink'><li id='" + this.inventory_id + "'>
...

我的听众是:

$("#inventoryDiv").on('click','a',function(){
    console.log($("a li:first-child").attr('id');
}

有什么想法吗?

3 个答案:

答案 0 :(得分:3)

$("#inventoryDiv").on('click','a',function(){
    console.log($(this).find('li').attr('id'));
});

答案 1 :(得分:2)

首先你需要切换li和一个标签,这样你的HTML才有效

$("#invList").append("<li id='" + this.inventory_id + "'><a href='javascript:void(0);' name='invLink'>

然后使用.closest()获取li的ID

$("#inventoryDiv").on('click','a',function(){
    $(this).closest('li').prop('id');
});

您将遇到的另一个问题是,您的所有UL都将具有相同的ID - 这也是无效的,因为ID应该是唯一的

答案 2 :(得分:1)

试试这个:

$("#inventoryDiv").on('click','a',function(){
    console.log($(this).find('li').prop('id'));
});

http://api.jquery.com/prop/