创建TextNode并将其附加到HTML元素而不是直接设置其textContent有什么好处?
假设我有一个跨度。
var span = document.getElementById('my-span');
我想改变它的文字。使用的优点是什么:
var my_text = document.createTextNode('Hello!');
span.appendChild(my_text);
在
span.textContent = 'hello';
答案 0 :(得分:23)
这不是真正的优点,而是根据需要正确使用。
根本区别在于:
createTextNode()
是一种方法,就像它的名字所说的那样:它创建一个元素......然后你必须用它做一些事情(比如在你的例子中,你把它作为一个孩子追加); textContent
是您可以获得或设置的属性,具有唯一的声明而无其他内容; 现在在你的问题的确切情况下,你说你要更改元素的文本...
更清楚地说,您有以下HTML元素:
<span>Original text</span>
如果您正在使用第一个解决方案:
var my_text = document.createTextNode('Hello!');
span.appendChild(my_text);
然后它将以:
结束<span>Original textHello!</span>
因为追加您的textNode
。
所以你应该使用第二种解决方案。