文本和textContent属性的区别

28
2个回答

16

textContent属性源自DOM Core规范的Node接口。而text属性则来自HTML5的HTMLAnchorElement接口,并被定义为“必须返回与textContent IDL属性相同的值”。

这两个属性可能被保留以收敛不同浏览器的行为,script元素的text属性定义略有不同。

请注意,DOM规范是一种通用规范,适用于任何类型的文档(例如HTML,XML,SGML等),而HTML5专门针对HTML进行了扩展,并在许多方面扩展了DOM Core(有些人可能认为它是一些DOM规范加上HTML加上…的“超集”)。

请注意,“继承”并不意味着“原型继承”,而是更一般的继承意义。


2
那么 text 有什么用途呢?由于 HTML 是 DOM 核心的扩展,我无法想象在任何情况下您会使用 text 而不是 textContent - fynyky
2
在DOM 2 HTML中,只有4个元素具有文本属性,并且它们的功能不同(例如对于body,它是文档文本颜色;对于title,它是标题文本;还有optionscript)。但支持不一致,HTML5似乎试图将文本与textContent融合。这与“浏览器实际执行的操作”以及“应该执行的操作”一样重要。 - RobG
2
如果 texttextContent 相同,则我会使用 text,因为它更短。 - gman
我正在使用IE11中的XML DOM,它似乎只有一个textContent属性,而没有text属性。因此,为了在XML DOM和HTML DOM之间保持一致,始终使用textContent似乎是有意义的。 - Polyfun
在一个类似于 foo<空格><空格><空格>bar 的选项列表中,list.options[i].textContent 返回的是 foo<空格><空格><空格>bar,而 list.options[i].text 返回的则是 foo<空格>bar。不幸的是, .text 不会返回带有多个空格的字符串。=> 这里的 <space> 指代一个空格。 - Butti

2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接