使用JavaScript添加数据表到HTML表:无法读取属性'parentNode'零
Adding dataTable to HTML table with JavaScript: Cannot read property 'parentNode' of null
我正试图使我正在创建的表与JavaScript
到.dataTable
的飞行。我将我的代码与同事的代码进行了比较,发现它们几乎是相同的。我已经做了必要的改变,但我不断得到JavaScript
错误:"无法读取属性'parentNode' null"在控制台中。
所有的代码都执行得很好。新表正在浏览器中显示,但是一旦它试图运行$('#data').dataTable({"paging": false});
行,它就会给我一个错误。
有人知道是什么原因造成的吗?可能是作用域错误,或者括号/括号在错误的位置。
function Load(p1, p2) {
var work= "";
$('#div1').empty();
var tablearea = document.getElementById('div1'),
table = document.createElement('table');
table.id = "data";
table.style.fontSize = "small";
table.width = "100%";
var tbody = document.createElement('tbody');
tbody.id = "dataTB";
table.appendChild(tbody);
tablearea.appendChild(table);
var url = sessionStorage.baseUrl + "XXXXXXXXX";
$.getJSON(url)
.done(function (data) {
var results = $.parseJSON(data);
if (results != null)
{
for (i = 0; i < results.length; i++) {
work += "<tr><td>" + results.data[i].info + "</td></tr>";
}
}
$('#dataTB').html(work);
$('#data').dataTable({"paging": false});
})
.fail(function (jqXHR, textStatus, err) {
alert('Error: ' + err);
});
}
我认为你必须在你的表中包含一个有效的thead
元素
我在使用DataTables.js
目录时遇到了这个问题,我通过在任何刷新或重新填充之前清空表来解决这个问题:
$('#data').empty();
在将数据行添加到表中之前,我不会将表附加到DOM。所以我会尝试下面的东西(JSON回调内部):
var tbody = document.createElement('tbody');
tbody.id = "dataTB";
table.appendChild(tbody);
var tablearea = document.getElementById('div1'),
table = document.createElement('table');
table.id = "data";
table.style.fontSize = "small";
table.width = "100%";
for (i = 0; i < results.length; i++) {
$(tbody).append("<tr><td>" + results.data[i].info + "</td></tr>");
}
tablearea.appendChild(table);
这是一个工作的jsbin: http://jsbin.com/vacabe/1/
我在这个库中遇到了同样的情况。我使用它与Knockout.JS,并使其工作,我添加了在我的viewModel超时结束:
setTimeout(() => {
// Call the get function at load
GetFiltersData();
}, 0);
这不会影响你的页面,我在几个浏览器上测试了这个,都成功了。
相关文章:
- TypeError:无法读取属性'推'未定义的JavaScript
- 同样,同样的错误'ahorcado.js:26未捕获类型错误:无法读取属性'beginPath'
- 未捕获的类型错误:无法读取属性'删除'的未定义
- AngularJS指令出错-无法读取属性'编译'的未定义
- 未捕获的类型错误:无法读取属性'name'即使它存在,也无法定义
- 看到“;未捕获的类型错误:无法读取属性'weight'未定义的“;尽管按照字面上的指示
- 无法读取属性'材料'未定义的Three.js
- 得到"TypeError:无法读取属性'filename'未定义的“;调用“npm start
- Soundcloud api"未捕获的类型错误:无法读取属性'uri'“未定义”;
- 未捕获的类型错误:无法读取属性'addEventListener'的null chrome扩展名
- Soundcloud Javascript SDK 3.0-回调无法读取属性'connectCallback
- 未捕获的类型错误:无法读取属性'状态'在react中为null
- JavaScript承诺-无法读取属性'那么'的未定义
- Javascript Float32数组抛出无法读取属性'0'即使数组定义良好,也为null
- 未捕获的类型错误:无法读取属性'中止'的未定义
- 角度推入数组给出:TypeError:无法读取属性'推'的未定义
- http/rxjs catch回调中的Angular 2重定向导致TypeError:无法读取属性'订阅'
- Javascript未捕获类型错误:无法读取属性'0'的未定义
- jQuery控制台错误:无法读取属性'top'的未定义
- TypeError:无法读取属性'findAll'的未定义