我确实发现了与jQuery结合的NOT_FOUND_ERR: DOM Exception 8
错误的几个问题,但它们并没有发生在像我这样的场景中,因此它们没有提供解决方案。
基本上,我有一个对象,我正在迭代它,然后使用<table>
http://jsfiddle.net/nt9gZ/向id="legend"
添加行。
var items = [],
obj = {a: 1,
b: 2};
$.each(obj, function(i, v) {
items.push(
$("<tr>").append(
$("<td>").html(i),
$("<td>").html(v)
)
);
});
// .empty() is to erase contents when running this piece of code again
$("#legend").empty().append(
$(items)
);
当我运行这段代码时,我收到错误:
Uncaught Error: NOT_FOUND_ERR: DOM Exception 8
在Chrome上。
我不确定我的代码究竟出了什么问题。
答案 0 :(得分:4)
您正在尝试插入数组数组..
在推送数组中创建的对象时添加.get(0)
,以便插入实际的DOM片段..
$.each(obj, function(i, v) {
items.push(
$("<tr>").append(
$("<td>").html(i),
$("<td>").html(v)
).get(0)
);
});
答案 1 :(得分:1)
我不熟悉您的以下代码
$("<tr>").append(
$("<td>").html(i),
$("<td>").html(v)
)
但这是达到同样目的的另一种方式。
var items = [],
obj = {a: 1, b: 2};
$.each(obj, function(i, v) {
items.push("<tr>"+"<td>"+i+"</td><td>" + v +"</td></tr>");
});
$("#legend").append(items.join(""));
答案 2 :(得分:1)
答案 3 :(得分:1)
试试这个jsfiddle
你应该遍历items
数组中的项目并逐个追加它们
答案 4 :(得分:1)
我稍微更新了您的代码:http://jsfiddle.net/nt9gZ/8/
基本上数组有问题 - append
方法不会将jQuery对象数组作为参数,只是一系列元素。所以我使用add
方法一起收集所有行。