javascript - 文本节点还是文本内容?

标签 javascript dom createtextnode

创建 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/

相关文章:

javascript - 使用 createTextNode() 但我需要向其添加 HTML 标签 (JavaScript/JQuery)

javascript - IE 11 Script1002 Array.Filter(x => ...)(箭头函数)

javascript - 为什么在新窗口打开时提交表单?

javascript - 来自对象数组的 JavaScript 内容

javascript - 显示/隐藏与从 DOM 添加/删除的可访问性影响

javascript 在 createTextNode 中用 <br> 替换\n

javascript - jQuery 选择全部而不是某些字段

javascript - 实例变量在增量游戏的 javascript 类中无法正常工作

javascript - 是否可以使用 TableRow.insertCell() 创建 TH?

javascript - JavaScript Live错误显示?