我試圖從按鈕被單擊時從列表中刪除項目。從UL中刪除for循環(JS)
的jsfiddle這裏 - https://jsfiddle.net/y3u47f11/15/
HTML
<ul class="list">
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
</ul>
<a class="btn" onclick="emptyList()">clear list</a>
JS
window.emptyList = function() {
var ul = document.querySelector('.list');
var listLength = ul.children.length;
for (i = 0; i < listLength; i++) {
ul.childNodes[i].removeChild();
}
// this works
// ul.innerHTML = "";
}
的問題是,當我按一下按鈕只有幾個項目從列表中移除例如在上面的例子中,我點擊'清除列表'按鈕一次,項目1,3和5被刪除。我再次單擊該按鈕,並刪除項目2。最後在第三次單擊列表被清空。
如果我設置ul.innerHTML =「」;我實際上可以很容易地刪除元素。
但我似乎無法弄清楚爲什麼emptyList函數沒有按預期工作,並會感謝任何見解我到哪裏去錯了。
感謝,
什麼'ul.children.length'返回? –