Jquery-删除包含li的链接
我在Jquery-删除包含li的链接,jquery,ajax,Jquery,Ajax,我在元素中有一个链接,希望在单击链接时删除元素。这是我的密码: <li id='i80'> <div class='singleitem'> <img src='/css/images/image.png' width='30' height='30' /> <div id='listtext'><h1>Title</h1></div> <a class='delete' id='80' hr
元素中有一个链接,希望在单击链接时删除
元素。这是我的密码:
<li id='i80'>
<div class='singleitem'>
<img src='/css/images/image.png' width='30' height='30' />
<div id='listtext'><h1>Title</h1></div>
<a class='delete' id='80' href='#'></a>
<div id='helper'></div>
</div>
</li>
ajax工作正常,“deleted”状态被正确地发回,但是,这一行涉及删除父li
的操作根本不起作用。有什么想法吗?谢谢
编辑:
我注意到,我动态添加到现有ul
的新列表项在这里不起作用。这是因为这只是在页面最初加载时加载,然后无法处理动态更新的内容吗?$(ajax块中的这个)对象不是$(“.delete”)对象。您需要执行以下操作:
$(".delete").click(function(e){
var $del_button = $(this);
var del_id = $(this).attr('id');
e.preventDefault();
$.post("/add/delete.php", { iid: del_id } ,function(data){
if(data.status == 'deleted');
{
$del_button.closest("li").remove();
}
});
});
尝试$(this.parent().remove()
(虽然感觉像是锯断了你坐着的树枝……)试试下面的方法,你需要参考父母
$(this).parent().remove()
编辑 以适应OP提出的附加问题。
使用
.on()
方法,如:
$(".singleitem").on('click', 'a.delete', function(e){
var del_btn = $(this); // cahed
var del_id = del_btn.attr('id');
e.preventDefault();
$.post("/add/delete.php", { iid: del_id } ,function(data){
if(data.status == 'deleted');
{
del_btn.closest("li").remove(); // used
}
});
});
你做到了!非常感谢您的快速回复,它现在工作得非常好。时间一到,我就把这个标记为已答复。再次感谢!就这样!非常感谢您的快速回答@nbu-是的:)我知道我和mask8有相同的答案。多亏了你。快乐编码!还有一个问题:我注意到我动态添加到现有ul的新列表项在这里不起作用。这是因为这只是在页面最初加载时加载,然后无法处理动态更新的内容吗?我可以重新编辑我的答案以使其工作。你可以改进/刷新你的问题,嗯,这似乎对我不起作用。我的代码都在
$function(){}
中,可以吗?你试过了吗?你的代码应该可以工作-但是(看起来好像不行)我的代码可以工作?我不需要,我知道问题出在哪里,我知道最接近的和父母做什么…玩得好:-)只是想帮你。。。看看新的答案,我也看到了!只是想指出最近的
就像父节点一样,但是它会遍历DOM直到找到它的祖先,而父节点则直接作为父节点。酷?
$(".delete").click(function(e){
var del_btn = $(this); // cahed
var del_id = del_btn.attr('id');
e.preventDefault();
$.post("/add/delete.php", { iid: del_id } ,function(data){
if(data.status == 'deleted');
{
del_btn.closest("li").remove(); // used
}
});
});
$(".singleitem").on('click', 'a.delete', function(e){
var del_btn = $(this); // cahed
var del_id = del_btn.attr('id');
e.preventDefault();
$.post("/add/delete.php", { iid: del_id } ,function(data){
if(data.status == 'deleted');
{
del_btn.closest("li").remove(); // used
}
});
});