【问题标题】:JavaScript TextNode updateJavaScript 文本节点更新
【发布时间】:2010-10-23 20:46:48
【问题描述】:

如果我有一个

var t = document.createTextNode(text)
parent.appendChild(t);

是否可以简单地更新t的内容?

我想在不使用removeChildcreateTextNodeappendChild 的情况下更改parent 中的文本。为什么我需要这个而不是只使用innerHTML?因为我不想用 HTML 代码更新元素的内容,而 text 可能包含特殊字符,例如 TextNode 的 DOM 方法解析。

谢谢,
汤姆

【问题讨论】:

  • 你想显示实际的 HTML 还是真的只是纯文本?
  • 我想更改 parent 中的文本并使其显示为纯文本(即,让 DOM 将

标签: javascript dom innerhtml createtextnode


【解决方案1】:

请注意,相邻的文本节点会合并为一个(因为实际上无法区分两个相邻的文本节点)。

文本节点的内容可以使用它的nodeValue 属性进行更新(参见MDC)。

由于定义的文本节点不能包含任何标记,因此没有innerHTML 属性。

【讨论】:

  • 完美 :) 正是我想要的
【解决方案2】:

如果您保留 TextNode 对象的实例(示例代码中为 t),那么您可以使用各种函数(如 replaceData()、substringData() 等)更改内容。

查看此页面以获得很好的参考: http://msdn.microsoft.com/en-us/library/ms535905(VS.85).aspx#

【讨论】:

    【解决方案3】:
    parent.innerText = text;
    

    【讨论】:

    • 这是另一种选择,当然。我以为您是在专门询问文本节点。
    • “我想更改父级中的文本”可能不够具体,不能说我不在乎如何,我只是想要一些非常简单的东西,它会使用 DOM 来转义 HTML .
    猜你喜欢
    • 2021-12-31
    • 1970-01-01
    • 2012-02-23
    • 2015-05-28
    • 2015-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-28
    相关资源
    最近更新 更多