如何从ul中删除<li></li>?

8

如何从ul列表中删除特定的<li></li>?我正在动态添加它...当用户点击清除时,我需要将其删除。我该怎么做?


1
你想同时删除<li></li>标签内的文本吗? - mpen
5个回答

15

这取决于你拥有什么和你正在添加什么。假设你最终添加的项目是这样的:

<ul id="list">
  <li><a href="#" class="clear">clear</a></li>
  <li><a href="#" class="clear">clear</a></li>
  <li><a href="#" class="clear">clear</a></li>
</ul>

然后使用remove()来删除单个项目:

$("#list a.clear").click(function() {
  $(this).parent().remove();
  return false;
});

但是如果你有:

<ul id="list">
  <li>one</li>
  <li>two</li>
  <li>three</li>
</ul>
<a href-"#" id="clear">Clear</a>

如果您想清除所有内容,请使用empty()函数:

$("#clear").click(function() {
  $("#list").empty();
  return false;
});

我有一个动态创建的列表(<li> s),在html中定义了<ul>。我能从中删除特定的<li>吗?就像你的第二个例子一样,假设<ul>内部的<li>标签是动态创建的。我只能删除<li>Two</li>吗? - Roshane Kekuluthotuwage

3
$('li').remove();

将删除所有li元素...建议在添加时为其添加id属性,以便您知道要删除哪个,然后使用以下代码进行特定选择:

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

1
在编写时,将唯一的值放入元素ID属性中。这样,您就有了一个已知的唯一参考点,以便稍后操作该元素。

0
 var ul = document.getElementById("yourElementId");

 while (ul.firstChild)
     ul.removeChild(ul.firstChild);

1
感谢您提供这段代码片段,它可能会提供一些有限的、即时的帮助。通过展示为什么这是一个好的解决方案,一个适当的解释将极大地提高其长期价值,并使其对未来读者具有其他类似问题更有用。请[编辑]您的答案以添加一些解释,包括您所做出的假设。 - Nick stands with Ukraine

0

使用此代码删除所有列表:

$("#Your_ul_Id").children().remove()

使用eq(index_of_your_li)来删除一个li:
$("#Your_ul_Id:eq(1)").remove()

使用 .not("#Your_li_Id") 来删除除一个之外的所有 lis:
$("#Your_ul_Id").children().not("#Your_li_Id").remove()

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接