Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/445.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript删除li而不删除ul?_Javascript_Html Lists_Removechild - Fatal编程技术网

javascript删除li而不删除ul?

javascript删除li而不删除ul?,javascript,html-lists,removechild,Javascript,Html Lists,Removechild,有没有办法在不移除ul的情况下移除ul的li元素?我似乎只能找到这个 var element = document.getElementById('myList'); element.parentNode.removeChild(element); 但是,这删除了ul。我希望能够动态删除和附加li元素,而不必每次删除li元素时都创建ul元素。只是想找一个更简单的方法。谢谢你的帮助 <div id="listView"> <ul id="myList" class="myL

有没有办法在不移除ul的情况下移除ul的li元素?我似乎只能找到这个

var element = document.getElementById('myList');
element.parentNode.removeChild(element);
但是,这删除了ul。我希望能够动态删除和附加li元素,而不必每次删除li元素时都创建ul元素。只是想找一个更简单的方法。谢谢你的帮助

<div id="listView">
  <ul id="myList" class="myList-class">
    <li>item 1</li>
    <li>item 2</li>
  </ul>
</div>

  • 项目1
  • 项目2

您可以这样做

var myList = document.getElementById('myList');
myList.innerHTML = '';
如果您使用的是jQuery

$('#myList').empty();

这两种方法都将删除列表中的所有内容。

这应该可以做到:

var lis = document.querySelectorAll('#myList li');
for(var i=0; li=lis[i]; i++) {
    li.parentNode.removeChild(li);
}

Demo

它删除
ul
的原因是
元素
变量指向
ul
。然后,您的下一行代码向上移动到父级(
#listView
),并将
removechild
方法与传递给它的
元素
变量(指向
ul
元素)一起应用

如果需要删除所有li元素,则可以使用:

document.getElementById('myList').innerHTML = '';
这将完全清空
ul
。如果需要删除选定的
li
元素,则可以使用以下方法从
#myList
遍历到特定的子元素:

var ulElem = document.getElementById('myList');

ulElem.removeChild(ulElem.childNodes[i])
其中
i
是要删除的
li
的索引(0表示第一个,1表示第二个,等等)


仅供参考:

只要我们有第一个孩子-删除它。(只要我们有一名成员就行)

const li=document.queryselectoral(“.list item类”);

对于(设i=0;i)您有一个带有
id=“div”的
li
?@Jeffman让下一位开发者猜个不停。对不起,我很忙。html posted.Cough。那么是
div
还是
myDiv
?哇,既然你真的发布了你的代码,@Jeffman是对的!正如你所知,给
ul
一个
myDiv
的id是一个非常糟糕的主意。即使
myUL
也不好,试着把它改成d描述性的,不是故意混淆的。这对我来说只需要添加一个。因为我只是删除了某些列表对象,而不是全部,所以我必须添加“I=I-1在removeChild调用以确保列表和i索引保持同步后。我喜欢这个答案,因为它只删除
  • 元素。如果由于某种原因,您的
      中有其他内容,则不会被删除。
      
        const removeNodesFromList = () => {
          const nodes = document.querySelector('.ul-class-selector');
          while (nodes.firstChild) {
            nodes.removeChild(nodes.firstChild);
          }
        };
      
      const li = document.querySelectorAll(".list-item-class");
      for(let i = 0; i <= li.length; i++ ){
          l = li[i];
          l.remove();
      }