我正在尝试选择在另一个动态元素<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');
}
有什么想法吗?
答案 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'));
});