使用文本节点时,我应该使用“data”,“nodeValue”,“textContent”还是“wholeText”字段?

时间:2012-09-05 17:44:31

标签: html dom cross-browser textnode

  

可能重复:
  How to retrieve the text of a DOM Text node?

在我处理DOM变异观察者的实验中,我注意到当target是文本节点时,有四个字段都包含节点的新文本。

  • data
  • nodeValue
  • textContent
  • wholeText

对于我应该使用哪些字段,是否存在“最佳做法”?

是否只是为了兼容其他浏览器或旧的DOM标准?我是在阅读还是修改文本会有所不同吗?如果最好的是其他人的目的是什么?

1 个答案:

答案 0 :(得分:34)

在所有这些中,我选择data:它仅为实现CharacterData接口(TextComment接口)的节点定义。尝试为其他人访问此属性会产生undefined

对于文本节点,

nodeValuedata基本相同,但实际上也是为属性和注释节点定义的。我通常希望我的程序尽早失败。 )

对我来说,

textContent是完全不同的东西,因为它代表节点及其后代的文本内容。这个以及wholeText可能应该更多地用于从比单个文本节点更复杂的结构中收集文本。

说了这一切,textContentwholeText在DOM Level 3中定义(=更现代)。