创建 TextNode 并将其附加到 HTML 元素比直接设置其 textContent 有什么优势?
假设我有一个跨度。
var span = document.getElementById('my-span');
我想更改其文本。使用有什么好处:
var my_text = document.createTextNode('Hello!');
span.appendChild(my_text);
超过
span.textContent = '你好';
最佳答案
这并不是优势的真正问题,而是根据需要正确使用的问题。
根本区别在于:
createTextNode()
是一个方法,正如其名称所示:它创建一个元素...然后您必须对它执行一些操作(就像在您的示例中一样,您将其附加为子);
所以如果你想要一个新元素并将其放置在某个地方textContent
是您可以获取或设置的属性,仅具有唯一的声明;
因此,当您只想更改已存在元素的内容时,它非常有用
现在,在您的问题的具体情况下,您说您想要更改元素的文本...
更清楚地说,您有以下 HTML 元素:
<span>Original text</span>
如果您使用的是第一个解决方案:
var my_text = document.createTextNode('Hello!');
span.appendChild(my_text);
然后它将以以下内容结束:
<span>Original textHello!</span>
因为您附加了您的textNode
。
所以你应该使用第二种解决方案。
关于javascript - 文本节点还是文本内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31643204/