javascript - DataTable - 分页和过滤器不适用于 JavaScript 生成的表

标签 javascript jquery datatables

我在 DataTables 中有 JavaScript 生成的表格,但分页和过滤器不显示(工作)。当我尝试使用 bFilterbPaginate 时,它没有帮助我。

JSFiddle

var keywords = [["dog", 2],["table", 3],["chair", 4],["dog", 2],["table", 3],["chair", 4], ["dog", 2],["table", 3],["chair", 4],["dog", 2],["table", 3],["chair", 4],["dog", 2],["table", 3],["chair", 4]];
    
    function buildKeywordTableString(keywords){
      
      var dataSet = new Array();
                
      for (var i = 0; i < keywords.length; i++){
          dataSet.push([keywords[i][0],keywords[i][1]]);    
            }
            
            var table =  $('<table cellpadding="0" cellspacing="0" border="0" class="display"></table>')
            .dataTable({
                "data": dataSet,
                "bFilter":true,
                "paging": true,
                "bPaginate":true,
                "columns": [
                    {"title": "Keyword"},
                    {"title": "F"}
                ]
            })[0].outerHTML;
            
            return table;
        }
    
    $("body").append(buildKeywordTableString(keywords));
    $("body").append(buildKeywordTableString(keywords));

最佳答案

尝试先将表插入到 DOM 中,然后将其初始化为 DataTable。您还需要确保表中也有有效的 thead:

https://jsfiddle.net/u7yhx9fL/10/

var keywords = [["dog", 2],["table", 3],["chair", 4],["dog", 2],["table", 3],["chair", 4], ["dog", 2],["table", 3],["chair", 4],["dog", 2],["table", 3],["chair", 4],["dog", 2],["table", 3],["chair", 4]];
var id=0;

function buildKeywordTableString(keywords){

    var dataSet = new Array();
        
    for (var i = 0; i < keywords.length; i++){
      dataSet.push([keywords[i][0],keywords[i][1]]);    
    }
    
    var table =  '<table id="table' + id + '" cellpadding="0" cellspacing="0" border="0" class="display"><thead><tr><th>Keyword</th><th>F</th></tr></thead><tbody></tbody></table>';
    $('body').append(table);
    $('#table' + id).dataTable({
        "data": dataSet,
        "bFilter":true,
        "paging": true,
        "bPaginate":true
    });
    
    id++
}

buildKeywordTableString(keywords);
buildKeywordTableString(keywords);

关于javascript - DataTable - 分页和过滤器不适用于 JavaScript 生成的表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26760704/

相关文章:

javascript - 在具有有限字符的标签中显示数据

javascript - 如何使用这个简单的下拉菜单?

javascript - jQuery 数据表未捕获类型错误 : Cannot read property 'length' of undefined

javascript - 为什么我的 JS 在设置为 'onLoad' 时不工作,但在设置为 'No wrap - in <body>' 时工作?

javascript - LinkedIn OAuth 重定向登录返回 "No ' Access-Control-Allow-Origin' header is present on the requested resource“错误

javascript - 带流的 JS 文件 uploader ,即不将整个文件加载到内存中

javascript - 在 Javascript 中返回对象

javascript - 获取父元素 html 以及子内容

javascript - TableTools - 导出到 Excel 不起作用

javascript - HTML 标题中的 <br/> 标记破坏了 jQuery DataTables 中的 pdfmake 导出