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

hip*_*ail 38 html dom cross-browser textnode

可能重复:
如何检索DOM Text节点的文本?

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

  • data
  • nodeValue
  • textContent
  • wholeText

对于我应该使用哪些领域,是否存在"最佳实践"?

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

rai*_*7ow 36

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

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

对我来说,textContent是完全不同的东西,因为它代表节点及其后代的文本内容.这与整个文本一起,可能应该更多地用于从比单个文本节点更复杂的结构中收集文本.

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

  • 更正:`data`未定义"仅适用于文本节点",但适用于[CharacterData接口](http://www.w3.org/TR/DOM-Level-3-Core/core.html#ID-FF21A306 ),它不仅由[Text nodes](http://www.w3.org/TR/DOM-Level-3-Core/core.html#ID-1312295772)继承,还包含[Comment nodes](http ://www.w3.org/TR/DOM-Level-3-Core/core.html#ID-1728279322). (3认同)