別のテーブルの対応する行に基づいて、テーブルの各行の高さを設定する必要があるという要件があります。テーブルには約 500 行あります。以下のJavascriptを書いてみたのですが、8000ミリ秒あたりでかなりパフォーマンスが悪いです。どうすればこれを速くすることができますか、ヒントをいただければ幸いです。
var start = new Date().getTime();
var rows = document.getElementById("table1").rows;
var dup_rows = document.getElementById("table2").rows;
var num_rows = rows.length;
var num_dup = dup_rows.length;
for (var i = 0; i < num_rows; ++i) {
var hg = rows[i].offsetHeight;
rows[i].style.height = hg +'px';
dup_rows[i].style.height = hg +'px';
}
var end = new Date().getTime();
var time = end - start;
alert('Execution time: ' + time);
DOM外でテーブルを編集するという提案に基づいて、以下を試しましたが、DOMからテーブルを削除すると、outerHeight/offsetHeightが0を返します。
clone_small = $('#table2').clone();
clone_main_tab = $('#table1').clone();
$("#table2").remove();
$("#table1").remove();
$(clone_main_tab).find("tr").each(function(i) {
var hg = 0;
hg = $(this).offsetHeight; // If I hard code the height it works
// alert(hg);
$(this).height(hg);
clone_small.find("tr").eq(i).height(hg);
});
これらの行の高さを DOM の外に設定するにはどうすればよいですか?