使用JQuery从列表中删除特定元素

时间:2012-02-12 13:58:46

标签: jquery list

我有一个动态列表,如下所示:

<ul>
<li class="border" id="tl_1">Text1</li>
<li class="border" id="tl_2">Text2</li>
<li class="border" id="tl_3">Text3</li>
</ul>

该列表可以包含比这三个更多的项目。

当有人点击某个特定按钮时,我希望例如“tl_2”将从列表中删除。我尝试了这些JQuery命令,但没有它们正在工作:

$('#tl_2').remove();

$('li').find('tl_1').remove();

我该如何解决这个问题?

4 个答案:

答案 0 :(得分:19)

您可能有多个具有相同ID的元素。

如果您想通过索引删除ID,则不必使用ID,您可以使用.eq()方法:

$("#btnRemove").click(function() {
    $("#myList li").eq(1).remove();
});

这将删除每次点击的第二个列表项。

Live test case

答案 1 :(得分:11)

你可能有一些愚蠢的错误,它应该有效:

$('#buttonId').click(function(){
        $('#tl_2').remove();
    });

请注意,不需要按ID“查找”元素。 id是唯一的。

$('li').find('tl_1').remove();  // And you were missing the # anyway...

确保每个id只有一个元素。 id就像id ...你只能拥有一个具有相同价值的。

  

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

答案 2 :(得分:2)

我认为你没有向我们展示你的代码的一些部分,因为我怀疑你正试图动态生成该id,这意味着你也动态设置它。你必须确保没有空间&#39; id中的字符很可能搞砸了......

$('#tl_2').remove();

根据jquery文档工作。它对我有用。

答案 3 :(得分:0)

您必须在其他地方出错,因为您拥有just works

请检查您的错误控制台。

虽然你的第二个例子应该是:

$('ul').find('#tl_2').remove(); // but this isn't really needed since we are selecting by id. So just go for the first example which is faster.