动态地将行添加到日期数组

时间:2015-11-02 23:06:00

标签: javascript jquery html html5

function init(year, month) {
    $('#table_main').find('tbody').empty();
    var row = $('#row_template').find('tr')[0];
    var date = new Date(year, month, 1);
    $(row).find('.date').val(date.toISOString().substring(0, 10));
    var rows = 15;
    //populate
    var clone;
    var dateI = date.getTime() + 1;
    for (var i = 0; i < rows; i++) {
        if (i !== 0) dateI += 24 * 60 * 60 * 1000;
        clone = row.cloneNode(true);
        $(clone).find('.date').val(new Date(dateI).toISOString().substring(0, 10));
        $('#table_main tbody')[0].appendChild(clone);
    }
}
$('#month').on('change', function() {
    init($('#year').val(), this.value)
});
$('#year').on('change', function() {
    init(this.value, $('#month').val())
});
//note the use of 'on' for event delegation
//events will "bubble up" from the table 'table_main'
//(adding event handlers automatically to any elements appended later, effectively)
$('#table_main').on('click', '.addButton', function (e) {
//$('#table_main').find('tbody').empty();
   // var row = $('#row_template').find('tr')[0];
    //var clone = row.cloneNode(true);
   // $('#table_main tbody')[0].appendChild(clone);
    //$('#table_main tbody>tr:last').clone(true).insertAfter('#table_main tbody>tr:last');
    //$('<tr>some more HTML here</tr>').appendTo('#table_main tbody');
    //$(this).closest('#table_main tbody')[0].appendChild(clone);
    var myRow = "<tr><td>C</td><td>3</td></tr>";
     $("#table_main tr:first").after(myRow);
});
$('#table_main').on('click', '.deleteButton', function (e) {
    // if ($('#table_main > tr').length) {
        $(this).closest('tr').remove();
    //}
    updateRowHours($(this).closest('tr'));
});
$('#table_main').on('click', '.clearButton', function(e) {
    //var tr = $(this).closest('tr');
    //tr.find('.addBtn').trigger('click');
    //tr.find('.removeBtn').trigger('click');
    $(this).closest('tr').find('.addButton, .deleteButton').trigger('click');
    //updateRowHours($(this).closest('tr'));
});
$('#table_main').on('input', '.t1', function (e) {
    updateRowHours($(this).closest('tr'));
});
$('#table_main').on('change', 'select', function (e) {
    updateRowHours($(this).closest('tr'));
});

您好,我正在尝试动态添加行。这是一个更大的脚本的一小部分。我在我当前行之后插入一行时遇到问题。我似乎只能将它添加到数组的开头或结尾。但我需要它添加到我点击按钮所在的位置。所以,如果我在2015年8月4日和4/09/15低于它,那么我需要在这两者之间添加行。单击保留任何行的日期。 (见图片,了解正在发生的事情。)

以下是我正在使用的表格的屏幕截图。

enter image description here

1 个答案:

答案 0 :(得分:0)

这就是你想要的吗?

$('#table_main').on('click', '.addButton', function (e) {
    var myRow = "<tr><td>C</td><td>3</td></tr>";
     $(this).closest('tr').after(myRow);
});