2011-10-07 58 views
16

对于DOM中的给定文本节点,可以使用这些属性来检索其文本:如何检索DOM Text节点的文本?

  • 的textContent
  • 数据
  • 的nodeValue
  • wholeText

但是使用哪一个? =哪一个是最可靠的和跨浏览器...

(如果有多个属性是100%可靠和跨浏览器,那么其中一个将是最合适?)


更新:

其实,wholeText是不是一种选择,因为它返回文本节点的拼接文本和所有兄弟文本节点...

回答

9

nodeValue应该是是跨浏览器兼容的。 It is part of the original DOM Level 2 specification.

也看看compatibility table of quirksmode.org(这是我总是用来查看哪些浏览器支持哪些属性)。

+1

如果你看一下这个怪癖模式表,你会注意到在IE 5.5中'nodeValue'是“不完整的”,而在那个浏览器中完全支持'data'。它不能不那么相关,但仍然是......':'' –

+1

'data'也是DOM Level 2规范的一部分,在'CharacterData'接口下。 *没有DOM对象直接对应于CharacterData,尽管Text和其他对象继承了它的接口*(通过:http://www.w3.org/TR/DOM-Level-2-Core/core.html#ID- FF21A306) – 2011-10-07 17:56:04

+0

@ŠimeVidas:是的,但是如果你看一下注释,那么你会发现'nodeValue'在IE 5.5中不支持* attribute nodes *,所以对于文本节点来说很好。老实说,我不知道'data'; –

1

我有良好的结果的nodeValue。

+0

我想我会用'数据' - 它更短,它是专门为文本节点定义的... –

+1

简洁是机智的灵魂。 ;) – canon

+0

我用'data' :)得到了很好的结果:)。 – 2011-10-07 17:52:20

0

当你100%确定它是一个文本节点时,你可以使用它们中的任何一个。

+4

这是不正确的。 'textContent'只在IE 9中引入。 –

+1

Ok,IE再次:) –

+0

@AronWoost我的想法是,其中一个是最合适的,我想使用那个。 –