TextNode还是textContent?

Fly*_*aku 21 javascript createtextnode

创建TextNode并将其附加到HTML元素而不是直接设置其textContent有什么好处?

假设我有一个跨度.

var span = document.getElementById('my-span');
Run Code Online (Sandbox Code Playgroud)

我想改变它的文字.使用的优点是什么:

var my_text = document.createTextNode('Hello!');
span.appendChild(my_text);
Run Code Online (Sandbox Code Playgroud)

过度

span.textContent = 'hello';

cFr*_*eed 28

这不是真正的优点,而是根据需要正确使用.

根本区别在于:

  • createTextNode()是一个方法,就像它的名字所说:它创建一个元素......然后你必须用它做一些事情(比如在你的例子中,你把它作为一个孩子追加);
    因此,如果您想要一个新元素并将其放置在某个位置,这将非常有用
  • textContent是您可以获得或设置的财产,具有独特的声明而没有别的;
    因此,当您只想更改现有元素的内容时,它非常有用

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

<span>Original text</span>
Run Code Online (Sandbox Code Playgroud)

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

var my_text = document.createTextNode('Hello!');
span.appendChild(my_text);
Run Code Online (Sandbox Code Playgroud)

然后它将结束:

<span>Original textHello!</span>
Run Code Online (Sandbox Code Playgroud)

因为你附加了你的textNode.

所以你应该使用第二个解决方案.