0

我正在尝试删除最近的 li 元素。问题是有一个循环正在创建li具有相同 ID 的元素。到目前为止这很好,但是还有另一个循环正在做同样的工作。在每个li元素中,都有一个 js 删除函数,它接受id每个 each 的li。但是现在,如果我单击li第二个循环的元素,它将删除第一个循环中的第一个 li。我的第一个循环的 js 代码是这样的:

function del_contact_a(cid){
        $.ajax({
            url: "/del_contact_a/",
            data: {id:cid},
            type: "POST",
        }).success(function(){
            $('#'+cid).closest('li').remove();
        })
}

第二个循环的js代码是这样的:

function del_contact_ver(cid){
        $.ajax({
            url: "/del_contact_ver/",
            data: {id:cid},
            type: "POST",
        }).success(function(){
            $('#'+cid).closest('li').remove();
        })
}

我的两个循环都是这些:

{% if contact_a %}
{% for ac in contact_a %}
<li id="{{ac.id}}"> <a> {{ac.name}} {{ac.nachname}}</a> <a onclick="del_contact_a({{ac.id}})"> <img src="{{STATIC_URL}}images/erase.png" /> </a>  </li>
{% endfor %}
{% endif %}

..

{% if contact_a %}
{% for ac in contact_a %}
<li id="{{ac.id}}"> <a> {{ac.name}} {{ac.nachname}}</a> <a onclick="del_contact_ver({{ac.id}})"> <img src="{{STATIC_URL}}images/erase.png" /> </a>  </li>
{% endfor %}
{% endif %}

有人可以给我线索吗?多谢

4

1 回答 1

1

您的 li 在 2 个循环上具有相同的 id。根据您的循环,您应该在每一个上使用一个前缀。

第一个 :

<li id="a-{{ac.id}}">

第二个 :

<li id="ver-{{ac.id}}">

并相应地改变你“”

一个 id,假设它的名称必须是唯一的:P

另外,我不明白您为什么使用最接近的方法?

$('#'+cid).remove();

应该足够了。

于 2012-12-06T13:38:49.910 回答