我不确定为什么firefox对此不满意,但是我可以从经验中说,在IE6 / 7/8中,您必须设置innerHTML =“”;
要从DOM中删除的对象上。(如果您是动态创建此DOM元素的,则是)
$("#content tbody").empty(); 可能不会释放这些动态生成的DOM元素。而是尝试如下所示的方法(这是我为解决该问题而编写的jQuery插件)。
jQuery.fn.removefromdom = function(s) { if (!this) return; var bin = $("#IELeakGarbageBin"); if (!bin.get(0)) { bin = $("<div id='IELeakGarbageBin'></div>"); $("body").append(bin); } $(this).children().each( function() { bin.append(this); document.getElementById("IELeakGarbageBin").innerHTML = ""; } ); this.remove(); bin.append(this); document.getElementById("IELeakGarbageBin").innerHTML = "";};您可以这样称呼:
$("#content").removefromdom();唯一的问题是,每次要构建表时都需要重新创建表。
另外,如果这确实解决了IE中的问题,则可以在我今年初遇到相同问题时写的博客文章中了解有关此问题的更多信息。
编辑
我现在将上面的插件更新为95%的Javascript免费,因此它比以前的版本使用更多的jQuery。您仍然会注意到我必须使用innerHTML,因为jQuery函数html(“”);
对于IE6 / 7/8的作用不同



