在tr不工作之前添加行

时间:2014-04-11 05:08:55

标签: jquery html5

我的问题与我现有的问题有关。请参阅我的fiddle

如果单击“添加行”按钮,将添加tr。我想在“添加行”按钮之前添加tr。

我尝试了以下代码:

 $tr.prependTo($(this).closest('tr'));

 $tr.insertBefore($(this).closest('tr'));

但没用。我无法解决它。任何人都可以节省我的时间吗?

2 个答案:

答案 0 :(得分:3)

使用on(),因为live()已从较新的 jQuery版本中删除。同时使用counter class作为id必须是唯一的

$(".AddRow").on('click',function () {
    var index = $(this).closest('tr').index();
        var $tr = $(this).closest('tr').clone(true);
        var $input = $tr.find('input.startdatum');
        var index = $tr.find('input.counter').val();
        $tr.find('.AddRow').val('Delete') // set value to Delete
           .toggleClass('AddRow delete') // toggle classes
           .unbind('click'); // unbind the current events from button
        var id = 'datepicker' + index;
        index++;
        $tr.find('input.counter').val(index);
        $input.attr('id', id).data('index', index);
        $tr.prependTo($(this).closest('table'));
        setdatepicker();
});
// bind click event to delete entire row
$(document).on('click','.delete',function(){
   $(this).closest('tr').remove(); 
});

<强> Live Demo

此外,如果您看到自己的代码,那么prepending行是appending,而不是index,如果您将new tr class应用为{{1}},那么您可以看到差异。< / p>

答案 1 :(得分:0)

我改变了这一行,并且它的工作......

 var $tr = $(this).closest('tr').clone().insertBefore(this);

 $tr.prependTo($(this).closest('table'));