Jquery无法从变量中识别表id

时间:2016-04-19 12:49:57

标签: jquery datatable

一直在努力使用JQuery数据表。 https://datatables.net/

.js和bootstrap链接和文件是正确的,因为如果表及其内容在div中,整个JQuery分页数据表都可以工作。

脚本代码如下:

$(document).ready(function() {
    $('#example').DataTable( {
        "pagingType": "full_numbers"
    } );
});

然后有:

function generateTable(){
var table = "<table id='example' class='display' cellspacing='0' width='100%'>"

之后,用Json读入users表信息并将其作为

放到表中
table +=

最后,将整个表变量放到div:

$("#myDiv").append($(table));

!该功能无法识别id =&#39;示例&#39; ! 什么可以改变,它可以识别?

就像有人说的那样,如果将数据直接放到div中,那么带有CSS的数据表会正确生成。

由于

制作一个完全独立的功能

function dataTable() {
$('#example').DataTable( {
        "pagingType": "full_numbers"
    } );
}

并在generateTable()之后将其调出并且无效。

2 个答案:

答案 0 :(得分:0)

你可以尝试:

function generateTable(data){
     if(data.lenght > 0){
       var table = "<table id='example' class='display' cellspacing='0' width='100%'>";
       //*** the rest of the code / use table += data... ***
       table += "</table>"; //close the element to make it a valid element!
     }
     else { 
       table = <table id='example' class='display' style="display:none;"></table>"; //so it is a valid element
     }
}
$(document).ready(function() {
     $.getJSON( "your call" )
       .done(function( json ) {
           generateTable(json);//when the document is ready, it should be call so it can be append...
       })
      .fail(function( jqxhr, textStatus, error ) {
          generateTable("");//when the document is ready, it should be call so it can be append...
     });

     $("#myDiv").append($(table)); // then you append it

     //now you can use it, because now is part of the DOM.
     $('#example').DataTable( {
         "pagingType": "full_numbers"
     } );
});

就像它会在返回json后创建表,如果不是,则创建一个空表。希望它可以帮到你。

答案 1 :(得分:0)

谢谢你们的帮助。 管理以获得您的想法的解决方案。

完全是关于同步的,并且示例表在document.ready(function)之后被放到div中,所以我无法加载正确的dataTable基础。

所以,我喊出了

function dataTable() {
$('#example').DataTable( {
        "pagingType": "full_numbers"
    } );
}

来自

function generateTable(){

之后

$("#myDiv").append($(table));
dataTable();