【发布时间】:2015-11-03 09:40:33
【问题描述】:
我需要使用 after() 函数将一些 tr 元素添加到 jQuery 中的 tr var 中,然后返回整个元素。 问题是,如果我返回 tr var,我只会得到 tr var,而不是使用 after() 添加的元素。这是函数:
var tr = $('<tr/>');
$('input[name^="lcs_cognome[' + num_sede +']"]').each(function(index, value){
var attr = $(this).attr('name').split('[');
var lcs_num = '';
for(var i=0; i<attr[2].length-1; i++)
lcs_num += '' + attr[2][i];
if(index == 0)
tr.append($('<td/>').text($('input[name="lcs_nome[' + num_sede +'][' + lcs_num + ']"]').val()))
.append($('<td/>').text($('input[name="lcs_cognome[' + num_sede +'][' + lcs_num + ']"]').val()))
.append($('<td/>').text($('input[name="lcs_sede_consegna[' + num_sede +'][' + lcs_num + ']"]').val()))
.append($('<td/>').text($('input[name="lcs_indirizzo_consegna[' + num_sede +'][' + lcs_num + ']"]').val() + ' ' + $('input[name="lcs_n_civico_consegna[' + num_sede +'][' + lcs_num + ']"]').val()))
.append($('<td/>').text($('input[name="lcs_telefono_1[' + num_sede +'][' + lcs_num + ']"]').val()));
else
tr.after($('<tr/>').append($('<td/>').text($('input[name="lcs_nome[' + num_sede +'][' + lcs_num + ']"]').val()))
.append($('<td/>').text($('input[name="lcs_cognome[' + num_sede +'][' + lcs_num + ']"]').val()))
.append($('<td/>').text($('input[name="lcs_sede_consegna[' + num_sede +'][' + lcs_num + ']"]').val()))
.append($('<td/>').text($('input[name="lcs_indirizzo_consegna[' + num_sede +'][' + lcs_num + ']"]').val() + ' ' +$('input[name="lcs_n_civico_consegna[' + num_sede +'][' + lcs_num + ']"]').val()))
.append($('<td/>').text($('input[name="lcs_telefono_1[' + num_sede +'][' + lcs_num + ']"]').val())));
});
return tr;
我也尝试用 insertAfter() 替换 after(),但没有成功。
【问题讨论】:
-
只是一个旁注,我认为你应该在你的代码中引入小的实用函数和变量,以减少混乱并使其更具可读性,例如
.getTD()用于创建td元素,getVal(name)用于所有.val()相关功能。
标签: javascript jquery dom append