印刷用に複雑なテーブルを操作する必要があります。jquery performance td replace
私のコードは動作しますが、IE上で、それは10秒(50行表)に対して実行
はどうすればパフォーマンスを向上させることができますか?
$(item).html(title)
が最も時間がかかることがわかりましたが、どうすればこの問題を回避できますか?
おかげ
コード:
tblTBLRows.find("td[name=tdTBLTitle]").each(function (i, item) {
var title = "";
if ($(item).find("*[name=iconForApprove]").length > 0) { title += "<b>[" + msgStatusForApprove + "]</b> " }
if ($(item).find("*[name=iconComplete]").length > 0) { title += "<b>[" + msgStatusCompleted + "]</b> " }
title += $(item).find("#contTxtTitle").html();
$(item).html(title).removeClass("tdTBLTitle");
});
HTML:1つの行例:
<tr>
<td>...</td>
<td name="tdTBLTitle" class="tdTBLTitle txtRight" colid="3">
<table cellspacing="0" cellpadding="0" class="tblTskTitle"><tbody><tr>
<td>
<span class="icon_24 iconVGray" name="iconForApprove" title="..."> </span>
<span class="spacer5"> </span>
</td>
<td class="tdTxtTitle " name="txtTitle">
<a href="..." class="NoLnk">
<div class="contTxtTitle Pointer" id="contTxtTitle">
Title1
</div>
</a>
</td>
<td class="tdDescLast" name="txtDescLast">
<a href="..." class="NoLnk">
<div class="contDescLast Pointer" id="contDescLast">
Title2
</div>
</a>
</td>
</tr></tbody>
</table>
</td>
<td>...</td>
</tr>
@sirmorne、ループ内でそのコストのかかる操作を.htmlの操作を行い、文字列であなたのhtml最終を行い、その後、ループ – kobe
のうちでの.htmlを行うと、あなたが検索している場合はありません単純なものではjQueryを使用しないのですが、 'document.getElementById( ')を使用しても' $('#whateverID ')'を呼び出す方が速いので、 'id'のためにあなたはどんなコンテキストでも検索する必要はありません。 whateverID ')。innerHTML'はテキストをより速く返します。 – zzzzBov
私は知っていますが、どのように各行に1つのTDの文字列を作成し、それを使ってすべての行のすべてのTDを置き換えることができますか? (データはすべての行で異なる) – SirMoreno