【问题标题】:TextNode or textContent?文本节点或文本内容?
【发布时间】:2015-10-17 01:19:08
【问题描述】:

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

假设我有一个跨度。

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

我想改变它的文字。使用有什么好处:

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

结束

span.textContent = 'hello';

【问题讨论】:

    标签: javascript dom createtextnode


    【解决方案1】:

    这不是真正的优势问题,而是根据需要正确使用。

    根本区别在于:

    • createTextNode() 是一种方法,正如它的名字所说的那样工作:它创建一个元素......然后你必须对它做一些事情(比如在你的例子中,你将它作为一个孩子附加);
      所以如果您想拥有一个新元素并将其放置在某个地方,这很有用
    • textContent 是您可以获取或设置的属性,具有唯一的声明,没有其他内容;
      因此,当您只想更改 已经存在的元素的内容时,它很有用

    现在,就您的问题而言,您说过要更改元素的文本...
    更清楚地说,您有以下 HTML 元素:

    <span>Original text</span>
    

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

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

    然后它将以:

    <span>Original textHello!</span>
    

    因为你附加你的textNode

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-01
      • 1970-01-01
      • 2015-05-19
      相关资源
      最近更新 更多