javascript - 一次性设置 HTML 表格行

标签 javascript jquery html

我目前的代码可以遍历 html 表的每一行并用不同的行更新它。

这是代码

    function sort(index) {
        var rows = $table.find('tbody tr');
        var a = $table.find('tbody tr');

        //Only sort if it has not been sorted yet and the index not the same
        if(sortedIndex === index){
            for(var i = 0; i < rows.length; i++){
                a[i].outerHTML = rows[(rows.length - i)-1].outerHTML;
            }
            toggleSorted();
        }else{
            sortedIndex = index;
            rows.sort(naturalSort);

            for (var i = 0; i < rows.length; i++) {
                a[i].outerHTML = rows[i].outerHTML;
            }
            sortedDown = true;
        }

        $('#${tableId}').trigger('repaginate');
    };

我想做的是不要遍历 for 循环中的每一行并设置 a[i].outterHTML = rows[i].outterHTML;我想一次设置所有行。目前设置它们大约需要 1.5 秒,而且非常慢......唯一的问题是我似乎找不到办法做到这一点。这实际上可能吗? (在我正在处理的大型数据集上需要 1.5 秒)。

最佳答案

由于行是相同的,只是重新排序,您可以 .append他们的新订单:

var $tBody = $table.find('tbody');
var $rows = $tBody.find('tr');

if(sortedIndex === index){
    toggleSorted();

    $tBody.append($rows.get().reverse());
} 
else {
    sortedIndex = index;
    sortedDown = true;

    $tBody.append($rows.get().sort(naturalSort));
}

这是一个演示上述内容的 fiddle :http://jsfiddle.net/k4u45Lnn/1/

关于javascript - 一次性设置 HTML 表格行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32190365/

相关文章:

javascript - 仅当站点位于本地主机时、仅当启用 JavaScript 时、仅在 IE8 模式下,IE8 才会在重新加载时崩溃

Javascript 切换按钮来更改其标题

javascript - 你怎么知道如何使用 twitter-bootstrap?

javascript - 字符串如何物理存储在 Javascript 中

javascript - 从位于数组内部的数组中删除逗号

javascript - 无法分配给函数调用

javascript - 基础javascript没有按预期工作

html - CSS flex - 元素左对齐,容器居中

html - 使 div 占用不超过剩余空间

html - 是否可以在仅使用 html 和 css 播放动画后重定向到另一个网页?