在通过ajax添加列表项后,我将点击事件重新附加到列表项的第三个标记(删除)后,尝试获取父元素的id。结构如下:
<ul id="list">
<li id="list_23">
<a href="javascript:;">Title</a>
<a href="javascript:;">Edit</a> | <a href="javascript:;">Delete</a>
</li>
<ul>
javascript是:
$('#list li').on("click", 'a:nth-child(2)', function(event) {
event.preventDefault();
id = $(this).parent().parent().attr('id');
console.log( id );
});
我试图获取列表项id(“list_23”),当第三个链接被点击时,在通过ajax添加元素之后。
答案 0 :(得分:1)
这不是用.on()
编写委托事件的正确方法。请尝试以下方法:
$('#list').on('click', 'li a:nth-child(3)', function(event) {
event.preventDefault();
id = $(this).parent().attr('id');
console.log( id );
});
请参阅jQuery的.on()
文档的具体this部分。
编辑:根据动态添加到DOM的元素li
项更新了我的答案。
编辑2:问题是:nth-child(n)
选择器不是基于索引的,而是基于索引编制的。添加了工作JSFiddle。
JSFiddle: http://jsfiddle.net/wyze/vTkYf/