Удалить все <li> из <ul>?
Я добавляю 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');
...
Ответы
Ответ 1
Если вы используете jQuery, почему бы вам не использовать его преимущества?
добавление элементов <li>
:
$("<li><img src='"+path[i]+"'></li>").appendTo(root);
удаление всех элементов <li>
:
$(root).empty();
удаление одного элемента <li>
:
$("li:eq(3)",$(root)).remove();
и если вы используете raw js, вы можете использовать:
document.getElementById("root").innerHTML = "";
Ответ 2
Кажется, вы пытаетесь выполнить это с помощью JavaScript:
while( root.firstChild ){
root.removeChild( root.firstChild );
}
jQuery только остановит вас здесь.
Ответ 3
document.getElementById( "the_ul_ID" ). innerHTML = "";
Ответ 4
$('#button').on('click', function() {
$(root).empty();
});
Ответ 5
Как насчет?
var ul = root;
ul.innerHTML = '';
Ответ 6
Вам нужно извлечь элементы перед их удалением, поскольку собственные методы DOM (большинство из них в любом случае) не могут быть переданы в селекторных строках так же, как могут использоваться методы jQuery.
var lis = root.getElementsByTagName("li");
for(var i = 0, il = lis.length;i<il;i++) {
root.removeChild(lis[i]);
}