Javascript jqueryappend不会从for循环中追加大型html提交

Javascript jqueryappend不会从for循环中追加大型html提交,javascript,jquery,Javascript,Jquery,我不太清楚,当我有很多数据要追加时,为什么我不能追加任何数据 当我有3个对象时,它工作正常,对于较大的对象,它不附加数据。 我相信append是在for循环完成之前调用的。可能是这样吗 构建: for (var i = 0; i < obj.length; i++) { if (obj[i].indiceId === 4 && dinamicDom !== 'dinamic_index_busca_edit') { var dateChkBox =

我不太清楚,当我有很多数据要追加时,为什么我不能追加任何数据

当我有3个对象时,它工作正常,对于较大的对象,它不附加数据。 我相信append是在for循环完成之前调用的。可能是这样吗

构建

for (var i = 0; i < obj.length; i++) {
    if (obj[i].indiceId === 4 && dinamicDom !== 'dinamic_index_busca_edit') {
        var dateChkBox = '<p class="pDtPeriodoChk"><input type="checkbox" name="dtPeriodoChk" class="dtPeriodoChk" id="' + i + '_chk">Por Período</p>';
        trs = trs + '<tr class="' + dinamicDom + '" style="padding-top:10px;"><td class="smallMediumField ' + i + '" style="padding-top:10px;"><fieldset class="dataFieldset"><legend>' + obj[i].indiceName + '</legend>' + dateChkBox + '<span id="' + i + '_lblDtInicio" class="lblDataInicio" style="display:none"><br />Data Inicio:</span><table><tr><td><img src="/Images/equal.png" alt="Igual a"/></td><td><input type="text" id="' + i + '" name="data" class="selectInput limpar" ';

        if (obj[i].valor !== null && obj[i].valor !== '') {
            trs = trs + ' value="' + obj[i].valor + '" ';
        }    
        trs = trs + '></td></tr></table><input type="hidden" id="' + obj[i].indiciId + '" name="data_indices" value="' + obj[i].indiciId + '" class="selectInput"></fieldset></td></tr>';
   } else {
       trs = trs + '<tr class="' + dinamicDom + '"><td class="smallMediumField ' + i + '" style="padding-top:10px;">' + obj[i].indiceName + '<br /><input type="text" id="' + i + '" name="groupBusca" class="selectInput limpar" ';
       if (obj[i].valor !== null && obj[i].valor !== '') {
           trs = trs + ' value="' + obj[i].valor + '" ';
       }
       trs = trs + '></td></tr></table><input type="hidden" id="' + obj[i].indiciId + '" name="indicesBusca" value="' + obj[i].indiciId + '" class="selectInput"></td></tr>';
   }
$('#tblBusca').append(trs);

尝试逐行追加

for (var i = 0; i < obj.length; i++) {
    var trs;

    if (obj[i].indiceId === 4 && dinamicDom !== 'dinamic_index_busca_edit') {
        var dateChkBox = '<p class="pDtPeriodoChk"><input type="checkbox" name="dtPeriodoChk" class="dtPeriodoChk" id="' + i + '_chk">Por Período</p>';
        trs = trs + '<tr class="' + dinamicDom + '" style="padding-top:10px;"><td class="smallMediumField ' + i + '" style="padding-top:10px;"><fieldset class="dataFieldset"><legend>' + obj[i].indiceName + '</legend>' + dateChkBox + '<span id="' + i + '_lblDtInicio" class="lblDataInicio" style="display:none"><br />Data Inicio:</span><table><tr><td><img src="/Images/equal.png" alt="Igual a"/></td><td><input type="text" id="' + i + '" name="data" class="selectInput limpar" ';

        if (obj[i].valor !== null && obj[i].valor !== '') {
            trs = trs + ' value="' + obj[i].valor + '" ';
        }    
        trs = trs + '></td></tr></table><input type="hidden" id="' + obj[i].indiciId + '" name="data_indices" value="' + obj[i].indiciId + '" class="selectInput"></fieldset></td></tr>';
   } else {
       trs = trs + '<tr class="' + dinamicDom + '"><td class="smallMediumField ' + i + '" style="padding-top:10px;">' + obj[i].indiceName + '<br /><input type="text" id="' + i + '" name="groupBusca" class="selectInput limpar" ';
       if (obj[i].valor !== null && obj[i].valor !== '') {
           trs = trs + ' value="' + obj[i].valor + '" ';
       }
       trs = trs + '></td></tr></table><input type="hidden" id="' + obj[i].indiciId + '" name="indicesBusca" value="' + obj[i].indiciId + '" class="selectInput"></td></tr>';
   }

    $('#tblBusca').append(trs);
}
for(变量i=0;i数据输入:;
}否则{
trs=trs+''+obj[i].指示符名+'
; } $('tblBusca')。追加(trs); }
能否添加这一行:
console.log(trs)在循环之后,在JS控制台上显示输出?为什么不使用DOM元素而不是HTML字符串?这肯定会产生更易于维护的代码。@FelixKling“使用DOM元素”是什么意思?某种帮助功能?很抱歉出现了这个新问题,与其创建一个长的HTML字符串,不如创建DOM元素并使用DOM操作来组合它们。例如,
$tr=$('')$tr.append($('')
。很好。。。谢谢你的提示