在IE中移除容器内的节点,会引起内存泄露,最好是创建一个新的节点,比如div,然后将要删除的节点放入这个div中,再将div的innerHTML清空。其它的浏览器直接removeChild就可以了。

js代码如下:

var removeNode = !+"\v1" ? function(){
    var d;
    return function(node){
        if(node && node.tagName != 'BODY'){
            d = d || document.createElement('DIV');
            d.appendChild(node);
            d.innerHTML = '';
        }
    }
}() : function(node){
    if(node && node.parentNode && node.tagName !=  'BODY'){
        node.parentNode.removeChild(node);
    }
}
移除节点:
xxx.removeChild(obj) xxx是所删除节点的父节点

xxx.removeNode(true) xxx是所要删除的节点

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐