Jquery将行添加到2nd tr而不是1st tr

时间:2016-05-04 14:29:46

标签: jquery html

我有jquery动态地向表中添加行,jquery代码是(简化)的:

var addTimeRow = function(id){
html = '<tr id="times_'+i+'">';             
html += '<td>';
html += '</td>';
html += '</tr>';
if( typeof id !== "undefined"){
        $('#times_'+id).after(html);
    }else{
        $('table').append(html);
    }
    $('#timestart').focus();
    i++;
}

我的HTML就是这样(简化):

    <table id="timestart">
    <?php foreach ( $invoice['InvoiceTime'] as $key=>$item){?>
    <tr id="times_<?php echo $key+1?>">
    <?php } ?>
    <?php }else{?>
    <tr id="times_1">

我有一个添加时间的按钮:

<span class="add_time" id="add_icon_1"><button class="btn btn-success" type="button">+ Add Time</button></span>

Jquery按钮代码:

$(document).on('click','.add_time',function(){
    var add_time_id = $(this).attr('id');
    var add_time_arr = add_time_id.split("_");
    var time_id = add_time_arr[add_time_arr.length-1];
    addTimeRow(time_id);
});

代码在表中添加一行,但不会将其添加到我想要的位置。我希望它的工作方式是当你单击添加时间按钮时,输出是这样的:

<table>
<tr><-- Time added here at the beginning no matter what
<td></td>
</tr>
<tr><-- Previous added time
etc

添加了备注:

在遵循Niet the Dark Absol发布的建议时,

删除行已被破坏:

$(".deletetime").on('click', function() {
$(this).closest('tr').remove();
});

1 个答案:

答案 0 :(得分:0)

只需使用append操作,如下所示:

$(function(){
  $('.tbody').append('<tr>TableDataHere</tr>');
})

它运作正常,并不需要你已经拥有的东西。我不能100%确定你为什么要使用PHP(?)。如果我能猜到你正在尝试做什么,JQuery可以更清洁,更快速地做到这一点。