我有一个DOM节点的集合,我想用新的DOM节点来替换。 由于我将信息传递到函数的方式,我只有一个名为collection的变量,它是一个充满HtmlTableRowElements的对象,我想用一个名为Rows的新变量替换它。用新节点替换DOM节点。
这里是我有什么
var parent = collection[0].parentNode;
parent.innerHTML = "";
parent.appendChild(rows);
但是这给了我很长的奇怪的错误。
未捕获的异常:[异常... “无法转换的JavaScript参数arg 0 [nsIDOMHTMLTableSectionElement.appendChild]” nsresult: “0x80570009(NS_ERROR_XPC_BAD_CONVERT_JS)” 位置:“JS帧:: http://127.0.0.1/test.php :: ::线103 “数据:无]
所以我也尝试
collection[0].parentNode.innerHTML = "";
collection[0].parentNode.appendChild(rows);
返回
collection [0] .parentNode为空
我明白为什么第二个选项会返回错误。我会想象第一个选项是返回一个错误,因为我已经删除了变量引用的元素。
我开始认为,寻找父母和取代它的内容是不是这样做的方式。
有帮助吗?
行是一个对象数组。但是它已经从DOM中删除了,所以我不知道为什么我需要一个DocumentFragment,我从中可以看到的唯一好处是我可以向父级追加单个子级,但是我仍然需要遍历行建立孩子。 Upvote,但支票将不得不转到费利克斯,因为它的工作原理和优化的性能。 – rlemon
@rlemon文档片段就像一个只保存DOM节点的数组。你不能在数组中使用appendChild,但是你可以在文档片段中使用它。 – s4y
也是,他先回答:) – rlemon