TextNode 还是 textContent?

TextNode or textContent?

创建 TextNode 并将其附加到 HTML 元素与直接设置其 textContent 相比有什么优势?

假设我有一个跨度。

var span = document.getElementById('my-span');

我想更改它的文本。使用 :

有什么好处
var my_text = document.createTextNode('Hello!');
span.appendChild(my_text);

超过

span.textContent = 'hello';

其实不是优点的问题,而是根据需要适当使用的问题。

根本区别在于:

  • createTextNode() 是一种方法,正如它的名字所说:它创建一个元素......然后你必须用它做一些事情(就像在你的例子中,你将它附加为 child);
    因此,如果您想拥有一个新元素并将其放置在某处,它会很有用
  • textContent 是一个 属性 您可能会得到或设置的,只有一个独特的声明;
    所以当您只想更改 已经存在的 元素的内容时它很有用

现在在您的问题中,您说您想要更改 元素的文本...
更清楚地说,你有以下 HTML 元素:

<span>Original text</span>

如果您使用的是第一个解决方案:

var my_text = document.createTextNode('Hello!');
span.appendChild(my_text);

然后它将以:

结尾
<span>Original textHello!</span>

因为您附加您的textNode

所以你应该使用第二种解决方案。