在实现以下功能的时候,当输入为aj的时候须要将下面的列表删除而后建立新的列表在将后台的数据导入列表node
可是在删除列表的时候我写了以下代码:spa
function clearLi(){ var content_ul = document.getElementById("moreword"); var ul_childs = content_ul.childNodes; var len = ul_childs.length; for(var i = 0; i < len; i++){ content_ul.removeChild(ul_childs[i]); } }
可是发现有点毛病:code
看着这些数据,因而恍然大悟,应该是在删除第一个node节点后,后面的节点会一一贯前进一位(大概是这么个意思吧)因此为了证实个人想法我写了以下代码:blog
function clearLi(){ var content_ul = document.getElementById("moreword"); var ul_childs = content_ul.childNodes; var len = ul_childs.length; for(var i = 0; i < len; i++){ content_ul.removeChild(ul_childs[0]); } }
效果以下:rem
一会儿就行了,因此个人想法没得错误。get
解决方案: 1. 只删除第一个node节点;io
2. 在删除节点的时候,能够从最后一个开始遍历删除。代码以下:function
function clearLi(){ var content_ul = document.getElementById("moreword"); var ul_childs = content_ul.childNodes; var len = ul_childs.length; for(var i = len-1; i >= 0; i--){ content_ul.removeChild(ul_childs[i]); } }