以编程方式使用jQuery和dataTables创建表

时间:2014-03-27 15:19:00

标签: javascript jquery html jquery-selectors datatables

我正在使用dataTables以编程方式在Django网络应用上呈现表格:

的jQuery

$(document).ready(function() {
    $("#dynamic0").html('<table cellpadding="0" cellspacing="0" border="0" class="display table table-striped table-bordered" id="peak_table_0"></table>');
    $('#peak_table_0').dataTable( {
        "aaData": {{ table_data|safe }},
        "aoColumns": {{ table_headings|safe }}
    });
});

HTML

<div id="dynamic0"></div>

我将有许多类似的表,只有数据会改变,所以我想自动创建表。我试图将jQuery初始化器放在一个循环中,但在这种情况下,表格不会呈现: 的的jQuery

$("div1").each(function(index) {
    var table_id = "peak_table_" + index
    $(this).html('<table cellpadding="0" cellspacing="0" border="0" class="display table table-striped table-bordered" id="'+table_id+'"></table>');

    $(table_id).dataTable( {
        "aaData": {{ table_data|safe }},
        "aoColumns": {{ table_headings|safe }}
    });
});

HTML

<div1 id="dynamic0"></div1>
<div1 id="dynamic1"></div1>

我猜测选择器没有被正确识别。有什么建议吗?

由于

2 个答案:

答案 0 :(得分:0)

更改

div1

div

我在DOM chokes中有一个预感jQuery,因为它不是一个有效的HTML标记。

答案 1 :(得分:0)

以下作品。它错过了table_id中的'#'。

$("div1").each(function(index){
      var table_id = "peak_table_"+index;
      $(this).html('<table cellpadding="0" cellspacing="0" border="0" class="display table table-striped table-bordered" id="'+table_id+'"></table>');
      $("#"+table_id).dataTable( {
          "aaData": {{ table_data|safe }},
          "aoColumns": {{ table_headings|safe }}
      });
});