本帖最后由 yaojianquansb 于 2011-10-17 15:02:02 编辑

解决方案 »

  1.   

    div.removeChild(this.previousSibling);
    这种方式是可以,但是这会造成内存泄露。。
    虽然原来的
    div.removeChild(fileItem); 方法也会。但是我在下面加上fileItem = null;就避免内存泄露了。。
    这段代码的人在onclick里面少了function addFileItems(){
                i++;      
            var div = document.getElementById("d1");
            var fileItem = document.createElement("input");
            var br = document.createElement("br");
            var removeButton = document.createElement("input");
            fileItem.type = "file";
            removeButton.type = "button";
            removeButton.value = "remove" + 0;
            removeButton.onclick = function(){
                 div.removeChild(fileItem);      
                 div.removeChild(br);            
                 div.removeChild(removeButton);  
                 
                 //清除节点,防止内存泄露
                 fileItem = null;
                 br = null;
                 removeButton = null;
                 

            };
            div.appendChild(fileItem);
            div.appendChild(removeButton);
            div.appendChild(br);        
        }