javascript – TextNode或innerHTML

前端之家收集整理的这篇文章主要介绍了javascript – TextNode或innerHTML前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
假设我们有以下元素< p id =“abc”> Hello World< / p&gt ;.如果我想修改< p>标签我在 JavaScript代码中有两种方式:
document.getElementById("abc").innerHTML="good morning";
document.getElementById("abc").firstChild.nodeValue="good morning";

问题是:

>两种解决方案有哪些区别?
>我应该使用哪一个?有一个比另一个更好吗?

解决方法

第一个将删除可能在目标元素内的任何HTML元素.第二个只有当第一个孩子是一个文本节点(一个常见的错误是尝试在一个空的元素上使用它)时才有效.

第二个是“更正确”(innerHTML真的是一个haxy快捷方式),但第一个肯定更可靠.也就是说,它很容易受到XSS注射.

要完全正确,你会这样做:

var abc = document.getElementById('abc');
while(abc.firstChild) abc.removeChild(abc.firstChild);
abc.appendChild(document.createTextNode("good morning"));
原文链接:https://www.f2er.com/js/152238.html

猜你在找的JavaScript相关文章