比如说,ul下有5个li,其中3个class是active的,我要把这3个元素节点删除,我写了这样的代码
oBtn2.onclick=function(){
var aActive=oUl.getElementsByClassName('active');
for(var i=0;i<aActive.length;i++){
oUl.removeChild(aActive[i]);
}
当点击btn2时,首先获取oUl下所有class为active的li,然后遍历删除,我后来大概知道是哪里出的问题,就是每次删除一个后,aActive的个数变了,因为aActive是动态的。
我才学js不久,只知道removeChild删除单个节点的方法,还有什么简单的办法可以实现删除一堆节点么?
将aActive长度保存即可,for(var i=0,len=aActive.length; i<len; i++){oUl.removeChild(aActive[0])},要注意的是低版本ie不支持getElementsByClassName方法,如果要兼容,要遍历所有节点查找。getElementsByTagName,getElementsByName这些方法都是动态,实时的,即是会根据节点的增删变化而变化的