通过选择datepickers创建数据表头

时间:2015-03-05 07:15:42

标签: javascript jquery datatable datepicker

我尝试使用动态列创建dataTable,以便从&到datepickers中进行选择。

列应包含日期和toDate之间的fromDate

JS代码

$("#from").datepicker();
$("#to").datepicker(); 

var strTopHead='<th rowspan="2">Name</th><th rowspan="2">Code</th><th rowspan="2">code</th>';

$('#getBetween').on('click', function () {

    $('#trTopHead').empty();
     $('#trBottomHead').empty();
    var start = $("#from").datepicker("getDate"),
        end = $("#to").datepicker("getDate"),
        currentDate = new Date(start),
        between = []
    ;
    if(start!=null&&end!=null){
    while (currentDate <= end) {
        between.push(new Date(currentDate).toJSON().substring(0,10));
        currentDate.setDate(currentDate.getDate() + 1);
    }

  //  $('#results').html(between.join('<br> '));
    for(var i=0;i<between.length;i++){
        strTopHead=strTopHead+'<th colspan="3">'+between[i]+'</th>';

    $('#trBottomHead').append('<th>C</th><th>D</th>               <th>E</th>');
        $('table>tbody').append('<tr><td>Tiger Nixon</td>                <td>System Architect</td>                <td>$320,800</td>                <td>Edinburgh</td>                <td>5421</td>               <td>t.nixon@datatables.net</td></tr>');
    }
            $('#trTopHead').append(strTopHead);

        $('#example').dataTable({
        "scrollY":        "200px",
        "scrollCollapse": true
        });
    }
});

此处仅显示单个日期作为列

I tried like this

1 个答案:

答案 0 :(得分:3)

我已对您的代码进行了一些修改

var date= new Date();//changes
$("#from").datepicker();
$("#to").datepicker();

$("#from").val($.datepicker.formatDate("mm/dd/yy",date));//changes
$("#to").val($.datepicker.formatDate("mm/dd/yy",date));//changes


$('#getBetween').on('click', function () {
    var strTopHead='';
    $('#trTopHead').empty();
     $('#trBottomHead').empty();
   strTopHead=strTopHead+ '<th rowspan="2">Name</th><th rowspan="2">Code</th><th rowspan="2">code</th>';
    var start = $("#from").datepicker("getDate"),
        end = $("#to").datepicker("getDate"),
        currentDate = new Date(start),
        between = []
    ;
    if(start!=null&&end!=null){
    while (currentDate <= end) {
        currentDate.setDate(currentDate.getDate() + 1);//changes
        between.push(new Date(currentDate).toJSON().substring(0,10));//changes

    }
    var strTopHeadDates='';
  //  $('#results').html(between.join('<br> '));
    for(var i=0;i<between.length;i++){
        strTopHeadDates=strTopHeadDates+'<th colspan="3">'+between[i]+'</th>';

    $('#trBottomHead').append('<th>C</th><th>D</th>               <th>E</th>');
        $('table>tbody').append('<tr><td>Tiger Nixon</td>                <td>System Architect</td>                <td>$320,800</td>                <td>Edinburgh</td>                <td>5421</td>               <td>t.nixon@datatables.net</td></tr>');
    }
        strTopHead=strTopHead+strTopHeadDates;
            $('#trTopHead').append(strTopHead);

     $('#example').dataTable();
        console.log($("#from").val());
    }
});

try this code