假设我们有下面的元素<p id="abc">Hello World</p>
。如果我想修改<p>
标记中的内容,在javascript代码中有两种方法:
document.getElementById("abc").innerHTML="good morning";
document.getElementById("abc").firstChild.nodeValue="good morning";
问题是:
发布于 2013-10-25 18:07:48
第一个命令将擦除目标元素中可能存在的所有HTML元素。第二种方法只有在第一个子节点是文本节点时才起作用(一个常见的错误是尝试在空元素上使用它)。
第二个是“更正确的”(innerHTML
实际上是一个冗长的快捷方式),但第一个肯定更可靠。也就是说,它很容易受到XSS注入的攻击。
要完全正确,您需要这样做:
var abc = document.getElementById('abc');
while(abc.firstChild) abc.removeChild(abc.firstChild);
abc.appendChild(document.createTextNode("good morning"));
https://stackoverflow.com/questions/19586797
复制相似问题