如何通过ID与jquery删除多个href链接?

时间:2012-02-08 13:42:37

标签: javascript jquery html css

我在删除所有具有相同ID的href链接时遇到问题。这是我的代码片段:

    $('.delblk').click(function(e) {
        e.preventDefault();

        var id = $(this).attr('id').substr(7);

        $.getJSON("../ajax_blocked.php?op=delete&id="+id, function(data) {
        if (data) {

            $("#delblk_"+id).each(function() {
                $(this).remove();
            });
        }
    });

我的HTML看起来像这样:

<a href="sent.php" id="delblk_7" class="delblk" ><span class="label label-important">Unblock</span></a>
<a href="sent.php" id="delblk_7" class="delblk" ><span class="label label-important">Unblock</span></a>
<a href="sent.php" id="delblk_8" class="delblk" ><span class="label label-important">Unblock</span></a>

它只删除了第一个href链接而不是它们两个。我错过了什么?

2 个答案:

答案 0 :(得分:2)

永远不会拥有多个ID相同的元素,请使用class代替id

  

每个id值只能在文档中使用一次。如果为多个元素分配了相同的ID,则使用该ID的查询将仅选择DOM中的第一个匹配元素。但是,不应依赖此行为;使用相同ID的多个元素的文档无效。

<强> docs

你和你兄弟,父亲或你所在国家的其他人一样有id吗? 每个HTML页面都像一个国家,id就像id一样......必须唯一

答案 1 :(得分:2)

描述

问题是您的文档中的ID必须是唯一的,请改用class属性。

所以你不能使用id (#)选择器。

但是你可以使用Attribute Equals Selector来迭代你的元素,检查我的样本和jsFiddle Demonstration

  

w3c id属性指定HTML元素的唯一ID(id属性值在HTML文档中必须是唯一的。)

示例

$("a[id='delblk_"+id+"']").each(function() {
    // ...
});

更多信息