我使用以下代码将
li
附加到 ul
中:
for (var i = 1; i <= len; i++) {
li = document.createElement('li');
element = document.createElement("img");
element.setAttribute("src", path[i]);
li.appendChild(element);
root.appendChild(li);
}
现在,我想通过单击按钮从列表中删除所有项目。 这是我正在使用的,但不起作用:
while(root.hasChildNodes()){
root.removeChild('li');
}
条件为真,但内线
root.removeChild('li')
不起作用。 我也尝试过这些选项:
root.removeChild(root li);
root.removeChild('#listid li');
root.removeChild('ul li');
...
如果您正在使用 jQuery,为什么不利用它的好处呢?
添加
<li>
元素:
$("<li><img src='"+path[i]+"'></li>").appendTo(root);
删除所有
<li>
元素:
$(root).empty();
删除一个
<li>
元素:
$("li:eq(3)",$(root)).remove();
如果您使用原始 JavaScript,您可以使用:
document.getElementById("root").innerHTML = "";
您似乎正在使用原始 JavaScript 尝试此操作:
while( root.firstChild ){
root.removeChild( root.firstChild );
}
jQuery 只会减慢你的速度。
document.getElementById("the_ul_ID").innerHTML = "";
那又怎样?
var ul = root;
ul.innerHTML = '';
您现在可以使用
replaceChildren()
来完成此操作:
root.replaceChildren();
$('#button').on('click', function() {
$(root).empty();
});
您需要在删除元素之前获取元素,因为本机 DOM 方法(无论如何都是大多数)无法像 jQuery 的方法那样在选择器字符串中传递。
var lis = root.getElementsByTagName("li");
for(var i = 0, il = lis.length;i<il;i++) {
root.removeChild(lis[i]);
}