0

我正在尝试删除li作为单击元素的父元素的a元素。

这是我的代码:

function vanish(id_arg){
        $.ajax({
            url: "/vanish/",
            type: "POST",
            data: {id_to_delete: id_arg},
        }).success(function(data){
           document.getElementsByTagName('li').getElementById(id_arg).remove();
        });
    }

这是我的html:

{% for i in p %}
<li id="{{i.id}}"> <a>{{i.name}}</a><a onclick="vanish({{i.id}})" class="item">delete</a></li>    
{% endfor %}

p 是包含名称和 ID 的查询响应。

vanish()将从数据库中删除该项目,作为 ajax 响应,我也想从页面中删除该项目。我需要删除而不是隐藏。

我的问题是它没有从页面中删除,我试图li用 javascript捕获remove()它,但从未找到合适的代码。

4

2 回答 2

1

只需先找到孩子并从文档正文中删除即可。

          var child = document.getElementById(id_arg);
          document.body.removeChild(child);
于 2012-10-13T06:14:15.900 回答
1

下面将选择所有链接并删除其上方的父元素。如果您在页面上有其他链接,我建议您给链接一个类,以便您可以指定要删除的链接。另请注意,在 li 上调用 remove() 也会删除元素内的所有内容。

$('#' + id_arg).click(function(){
    $(this).parent().remove();
});

编辑:快速阅读问题,您可以将其包含在您的ajax调用的成功函数中:

$('#' + id_arg).closest('li').remove();
于 2012-10-13T06:15:51.373 回答