代码如下:
var childs=parentNode.childNodes();
for(var i=0,len=childs.length;i<len;i++){
//alert(childs.item(i));
parentNode.removeChild(childs.item(i));
}
节点是SVG图形对象的节点,父node下是确定有 8 个子的。问题来了,在删除的时候当 i 等于 4 时就错误了,调试工具显示的是not found,childs.item(...)不是对象或对象不存在。但是注释掉的那行是显示有结果的。我是用IE7调试的。另外,删除的时候,因为是SVG画出来的图形,用IE可以看到这些图像,程序是间隔着删除图像的,如先删除第一个,然后删除第三个等等,不知道为什么会是这样?removeChild这个方法是不是按照节点的排列属性来删除的呢?各位朋友能帮忙看看是什么问题吗?我在此先谢谢了。
var childs=parentNode.childNodes();
for(var i=0,len=childs.length;i<len;i++){
//alert(childs.item(i));
parentNode.removeChild(childs.item(i));
}
节点是SVG图形对象的节点,父node下是确定有 8 个子的。问题来了,在删除的时候当 i 等于 4 时就错误了,调试工具显示的是not found,childs.item(...)不是对象或对象不存在。但是注释掉的那行是显示有结果的。我是用IE7调试的。另外,删除的时候,因为是SVG画出来的图形,用IE可以看到这些图像,程序是间隔着删除图像的,如先删除第一个,然后删除第三个等等,不知道为什么会是这样?removeChild这个方法是不是按照节点的排列属性来删除的呢?各位朋友能帮忙看看是什么问题吗?我在此先谢谢了。
for(var i=childs.length;i>0;i<len;i--){
//alert(childs.item(i));
parentNode.removeChild(childs.item(i));
}从最后一个倒着删除
这东西就像链表,FIFO。思维太惯性了,万没想到原来是这样。另外,这样操作也可以: var node=parentNode.firstChild;
var tmpNode;
while(node!=$node.lastChild){
tmpNode=node.nextSibling;
parentNode.removeChild(node);
node=tmpNode;
}
$parentNode.removeChild(parentNode.lastChild);呵呵,多尝试才能加深理解。