Мне нужно манипулировать сложной таблицей для печати.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: пример один ряд:
<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 финал в строку, а затем сделать .html в из цикла – kobe
и если вы ищете для 'id' вам не нужно искать в каком-либо контексте, так как быстрее просто вызвать' $ ('# anyID') ', хотя для простых вещей даже не используйте jQuery,' document.getElementById (' anyID '). innerHTML' быстрее вернет текст. – zzzzBov
Я знаю, но как можно построить строку из одного TD в каждой строке, а затем использовать ее для замены всех этих TD во всех строках? (данные разные в каждой строке) – SirMoreno