0

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

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

但只会给出第一个 li 的 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');
}

有什么想法吗?

4

3 回答 3

3
$("#inventoryDiv").on('click','a',function(){
    console.log($(this).find('li').attr('id'));
});
于 2013-08-23T14:51:45.653 回答
2

首先,您需要切换 li 和 a 标签,以便您的 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' 应该是唯一的

于 2013-08-23T14:56:04.263 回答
1

尝试这个:

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

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

于 2013-08-23T14:54:14.973 回答