更改textNode值

lev*_*vik 84 javascript dom dhtml

有没有办法在Web浏览器中更改DOM textNode的值?

我特别想看看我是否可以更改现有节点,而不是创建一个新节点.

为了澄清,我需要使用Javascript来做到这一点.浏览器中的所有文本都存储在#textNodes中,#textNodes是其他HTML节点的子节点,但不能拥有自己的子节点.

如下所述,可以通过设置这些对象的nodeValue属性来更改内容.

Ash*_*Ash 122

如果您有一个特定节点(类型为#text)并想要更改其值,则可以使用nodeValue属性:

node.nodeValue="new value";
Run Code Online (Sandbox Code Playgroud)

注意:

innerText(和 或者 textContent)将返回/设置当前节点和所有后代节点文本,因此可能不是您想要/期望的行为.

  • @petermeissner:这完全回答了这个问题,所以你的downvote是完全没有根据的. (8认同)
  • 还有'data'作为Text上'nodeValue'的简短同义词(以及CDATASection和Comment). (4认同)
  • 是的,nodeValue 非常适合这个。innerText 和 textContent 在这方面有所不同:IE(创建了 innerText)在 #text 节点上不支持它(因为没有可以文本化的子节点),而 textContent 旨在在 #Element 和 #text 节点上使用。 (3认同)
  • 并不总是有效..“当nodeValue被定义为null时,设置它没有效果。” ..在这种情况下我选择了“textContent”...设置它也更新了“innerText”的值 (2认同)