Javascript TextNode或innerHTML
假设我们有以下元素Javascript TextNode或innerHTML,javascript,html,Javascript,Html,假设我们有以下元素Hello World。如果我想修改标记中的内容,我在javascript代码中有两种方法: document.getElementById("abc").innerHTML="good morning"; document.getElementById("abc").firstChild.nodeValue="good morning"; 问题是: 这两种解决方案的区别是什么? 我应该用哪一个?有一个比另一个好吗 第一个将删除目标元素中可能存在的任何HTML元素。只有当第
Hello World
。如果我想修改
标记中的内容,我在javascript代码中有两种方法:document.getElementById("abc").innerHTML="good morning";
document.getElementById("abc").firstChild.nodeValue="good morning";
问题是:
- 这两种解决方案的区别是什么?
- 我应该用哪一个?有一个比另一个好吗
innerHTML
实际上是一种haxy快捷方式),但第一种肯定更可靠。也就是说,它很容易受到XSS注入的影响
要完全正确,请执行以下操作:
var abc = document.getElementById('abc');
while(abc.firstChild) abc.removeChild(abc.firstChild);
abc.appendChild(document.createTextNode("good morning"));
建议阅读:1)2)