下面的第二个appendChild()
在IE11中失败了(可能还有其他):
var span = document.getElementById('domNode');
var existingTextNode = span.childNodes[0];
span.innerHTML = '';
var newTextNode = document.createTextNode('new Text Node');
console.log(existingTextNode.nodeName, "=?=", newTextNode.nodeName);
span.appendChild(newTextNode);
console.log('newTextNode appended OK');
span.appendChild(existingTextNode);
console.log('existingTextNode appended OK');
<span id='domNode'>pre-existing Text Node</span>
新TextNode
成功附加。现有的失败了:
Error: {
"message": "Invalid argument.",
"filename": "http://stacksnippets.net/js",
"lineno": 23,
"colno": 1
}
这里失败的根本原因是什么? (这是定义的行为吗?一个错误?)它是否特定于预先存在的TextNode
个对象?
...最重要的是,当我需要追加它们时,我唯一的解决办法就是始终创建新的TextNode
?或者,是否有一些我不知道的技巧可以让我像任何其他节点一样处理预先存在的TextNode
?