2016-04-19 25 views
0

一直在用jQuery数据表达式挣扎。 https://datatables.net/jquery无法识别变量表中的表id

.js和引导链接和文件是正确的,因为如果表和它的内容在div内,整个JQuery分页数据表工作。

脚本代码如下:

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

则有:

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

,用户表信息使用JSON阅读并投入表作为

table += 

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

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

!该函数无法识别id ='example'! 什么可以改变,所以它可以识别?

赞同据说,如果数据直接放到div,带有CSS的数据表格会正确生成。

感谢

做出了产品总数单独的函数

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

,并呼吁它generateTable()之后,并没有工作。

+0

之后是页面触发 “准备” 它加载的Json过吗?事情是异步的...放置一些'console.log(“fetching json”);''和'console.log(“document ready”);'看看它运行的顺序。 – SparK

+0

日志显示,获取json是最后一个。 给出了表头列,所以无论如何表格结构都应该打印出来。 – SeldomScheen

+0

加载div后,为什么不调用DataTable? 控制台上还显示其他内容吗? – SparK

回答

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后的表或一个空表。希望它可以帮助你。

+0

当我使用call out generateTable函数时,那么JSON不会被读入。需要提到的是,在构建这个之前,我在变量中使用了

表格样式,并且一切正常。 已经从各个角度对它进行了调试,变量中的id不是legid。 – SeldomScheen

+0

此外,单元格间距和宽度更改会影响表格变量。 – SeldomScheen

+0

@SeldomScheen希望这个编辑帮助... –

0

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

这是关于同步和示例表放在document.ready(函数)后的div,所以我不能加载正确的dataTable基地。

所以,我叫了

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

function generateTable(){ 

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