使用after()jquery返回带有其他添加元素的元素

时间:2015-08-11 08:43:08

标签: javascript jquery dom append

我需要使用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(),但它没有用。

1 个答案:

答案 0 :(得分:0)

您必须使用insertAfter,但您需要以另一种方式返回值:

                return  $('<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())
                        )
                    );
            }).insertAfter(tr)

最后不要返回tr,因为你要返回$('tr')个对象。

您有关于它的更多信息:https://stackoverflow.com/a/11114453/5035890

相关问题