Javascript 动态HTML标题导致动态表中断

Javascript 动态HTML标题导致动态表中断,javascript,jquery,dynatable,Javascript,Jquery,Dynatable,我已经创建了一个动态表,我已经动态地构建了表头。 Dynatable在运行时出错,因为它无法在HTML中找到标题 错误:未捕获错误:在'thead tr'中找不到任何列标题 th,td'。如果标题行不同,请在中指定选择器 表:头枕选配件 参见小提琴: 如果HTML包含以下内容,则它确实会起作用: 工作小提琴: 名字 姓氏 但是为了允许动态创建,我将thead留空。我已经切换到使用数据表。 这是我的解决方案,但不是这个问题的确切解决方案。 为了将来参考,datatables允许您基于列标题数组

我已经创建了一个动态表,我已经动态地构建了表头。 Dynatable在运行时出错,因为它无法在HTML中找到标题

错误:未捕获错误:在'thead tr'中找不到任何列标题 th,td'。如果标题行不同,请在中指定选择器 表:头枕选配件

参见小提琴:

如果HTML包含以下内容,则它确实会起作用:

工作小提琴:


名字
姓氏

但是为了允许动态创建,我将thead留空。

我已经切换到使用数据表。 这是我的解决方案,但不是这个问题的确切解决方案。 为了将来参考,datatables允许您基于列标题数组动态创建标题

$('#example thead tr,tfoot tr').append('<th>' + value + '</th>');
$('#示例thead tr,tfoot tr').append(''+value+'');

出于某种原因,动态表在动态创建标题时使用“thead tr”作为标题选择器,并在该标题下搜索“th”。简单的解决方案是明确地指定“thead”作为headRowSelector

$('#my-table').dynatable({
    table: {
        headRowSelector:'thead',
    },
    dataset: {
        records: columns
    }
});

如果填充该表,是否会出现相同的错误?是的,它工作正常请参见上面更新的工作fiddle此处的原因它希望能够计算
$columns.length
,否则它会抛出错误数组长度属性确实工作吗?hResponse.length=3 Dynatable搜索的不是javascript数组的长度,它专门搜索DOM上存在的
th
td
元素。只要
obj.$element.find(settings.table.headRowSelector).children('th,td')(表示未找到任何元素-可在上面的链接中找到此代码)返回
null
您将得到相同的错误,这就是填充表不会返回错误的原因OP需要使用动态表的解决方案
$('#my-table').dynatable({
    table: {
        headRowSelector:'thead',
    },
    dataset: {
        records: columns
    }
});