Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用jquery在最短的时间内修改大表的行?_Javascript_Jquery_Html_Optimization_Html Table - Fatal编程技术网

Javascript 如何使用jquery在最短的时间内修改大表的行?

Javascript 如何使用jquery在最短的时间内修改大表的行?,javascript,jquery,html,optimization,html-table,Javascript,Jquery,Html,Optimization,Html Table,我有两个html表,每个表中的行数相同。我希望表A的行与表B的行具有相同的高度。 我试过这样的方法: $tableA.find('tr').each(function (i, elem) { $row = $tableB.find('tr.calendar_row:eq(' + i + ')'); $(this).height($row.height()); }); 它工作得很好,但当我的表很大(+300行)时,此函数最多需要8秒 有没有办法提高绩效?例如,我试图将tableA

我有两个html表,每个表中的行数相同。我希望表A的行与表B的行具有相同的高度。 我试过这样的方法:

$tableA.find('tr').each(function (i, elem) {
    $row = $tableB.find('tr.calendar_row:eq(' + i + ')');
    $(this).height($row.height());
});
它工作得很好,但当我的表很大(+300行)时,此函数最多需要8秒

有没有办法提高绩效?例如,我试图将
tableA
tableB
行存储到vars中,并遍历这些数组,但似乎无法使用jquery的
height()
函数

编辑:这是我的两个表:我希望我的
tableA
行与
tableB


尝试将表格B的行放入变量:

var rows = $tableB.find('tr.calendar_row');
$tableA.find('tr').each(function (i, elem) {
    $row = rows.eq(i);
    $(this).height($row.height());
});

好吧,多亏了穆罕默德,我终于得到了我想要的! 代码如下:

var height = $tableB.find('tr.calendar_row').map(function () { return $(this).height(); }).get();
$tableA.find('tr').each(function (i, elem) {
    $(this).height(height[i]);
});
使用此方法,执行时间约为0.5s


谢谢大家的回答

桌子挨着吗?(并排)?一种方法是使用带有“gap”列的单个表,并调整边框,使其看起来像两个单独的表。然后,无论内容如何,每个
tr
都将始终保持相同的高度。我认为您的代码的问题在于按索引(
:eq()
)查找元素需要很长时间。您可以在变量中存储行的高度,如
var height=$(“tr.calendar_row”).map(函数(){return$(this.height();}).get()并在循环中使用变量。也许我没有正确使用它,但我的tableA的行似乎不符合tableB的行高度。在我的每个循环中,我使用height变量如下:
$(this).height(height)考虑使用一个中间有间隙的单个表来改变表结构。它更快、更安全、更容易。它可以在不需要JS的情况下调整表行高度。不幸的是,我不能使用单个表,因为我需要tableA保持固定,而tableB可以水平滚动。它似乎不起作用,我得到了以下错误:未捕获类型错误:$row.height不是一个函数,这是一个错误,它确实起作用!它比Mohammad的解决方案慢(大约4秒),但它可能会帮助面临同样问题的人。