Javascript 在IE中有没有快速更换大车身的方法?

Javascript 在IE中有没有快速更换大车身的方法?,javascript,jquery,Javascript,Jquery,我需要使用下面的jQuery将tbody替换为新的Html。当Html大于1Mb时,.empty()函数挂起 $("#searchForm").submit(function (event) { event.preventDefault(); //$("#myTable tbody").empty(); $.post($(this).attr('action'), $(this).serialize(), function (data) { //$("#

我需要使用下面的jQuery将
tbody
替换为新的Html。当Html大于1Mb时,.empty()函数挂起

$("#searchForm").submit(function (event) {
    event.preventDefault();
    //$("#myTable tbody").empty();
    $.post($(this).attr('action'), $(this).serialize(), function (data) {

        //$("#myTable tbody").html(data);
        replaceTableBody("thebody", data);

    });
});  
如果这是一个棘手的解决方案,我并不担心,我只是希望它能起作用……
我尝试了这个,但无法让它工作:

它只需要在IE中工作

编辑

    var replaceTableBody = function(tbodyId, html){
        var temp  = document.createElement('div');
        temp.innerHTML = '<table><tbody id="thebody">'+html;
        var tb = document.getElementById(tbodyId);
        tb.parentNode.replaceChild(temp.firstChild.firstChild, tb);
        temp = null;
    };
var replaceTableBody=function(tbodyId,html){
var temp=document.createElement('div');
temp.innerHTML=''+html;
var tb=document.getElementById(tbodyId);
tb.parentNode.replaceChild(temp.firstChild.firstChild,tb);
温度=零;
};

如果首先用$(''myTable tbody').remove()之类的内容删除tbody的所有行,然后调用$(''myTable tbody').empty()…如果删除行之后需要执行最后一步,那么该方法是否有效…

我以前已经这样做过如果希望更快,则不能使用jquery

我写了一篇很长的博客文章,介绍了它是如何完成的,很长,所以我不会将它粘贴到这里,只需链接它:

您必须不要使用jquery的原因是,一旦您将文本传递到.html()中,jquery就会做某些事情,比如搜索脚本、执行脚本、修复某些事情等等。这通常是一件好事,但在IE上使用1mb文本并不是一件好事

尝试使用.each()并分别删除每一行

$(“tbody tr”).each(函数(){$(this.remove();});
我认为jquery是正确的,但它是基本思想。

根据jquery API文档:

当使用.html()设置元素的内容时,该元素中的任何内容都会被新内容完全替换。


在更新
tbody
之前,是否需要调用
empty()

当然,这需要比
更长的时间。empty()
?正常情况下,如果empty()挂起导致其数据过多,则可能逐个执行不会挂起。原始表是否有一个id为“thebody”的tbody?是的。这可能与它创建的“div”有关吗?不,这就是不在ie上使用jquery替换tbody的方法。粘贴原始表html。还有,ajax请求返回了什么?只是我希望的元素?是的,一个不健康的
问题。为什么在JS中包含
标记?我把它拿走了。。。