我有以下函数传递一个对象,我试图表示为一个表。
我试图循环一个内部对象以添加所需的表行,但是一旦我的循环完成说“未捕获错误:NOT_FOUND_ERR:DOM异常8”
我得到一个异常有什么想法吗?
function addTableLegend(seriesObj) {
$('#divTableLegends').append(
$('<table>').attr({
'id': 'tbl' + seriesObj.seriesIndex,
'class': 'ipTable'
}).append(
$('<thead>').append(
$('<tr>').append(
$('<td>').append(seriesObj.name)
).append(
$('<td>').append('Standard Deviation')
).append(
$('<td>').append('Expected Return')
)
)
).append(
$('<tbody>').append(
$.each(seriesObj.objData, function (i, val) {
$('<tr>')
// ***Uncaught Error: NOT_FOUND_ERR: DOM Exception 8***
})
)
)
);
}
答案 0 :(得分:2)
$.each
返回一个常规对象,而不是一个jQuery列表。
这就是无法使用.append()
虽然我认为你的意思是这样的:
function addTableLegend(seriesObj) {
// Define the table
var tbl = $('<table>').attr({
'id': 'tbl' + seriesObj.seriesIndex,
'class': 'ipTable'
}).append(
$('<thead>').append(
$('<tr>').append(
$('<td>').append(seriesObj.name)
).append(
$('<td>').append('Standard Deviation')
).append(
$('<td>').append('Expected Return')
)
)
).append($('<tbody>'));
// Append the table
$('#divTableLegends').append(tbl);
// Container alias
var container = tbl.children('tbody').first();
// Iterate the data
$.each(seriesObj.objData, function (i, val) {
// Add item to table
container.append(
$('<tr>').append(
$('<td>').html(val),
$('<td>').html('MyDeviation'),
$('<td>').html('MyReturn')
)
);
});
}