【发布时间】:2014-08-17 03:14:35
【问题描述】:
我有一个由 Javascript 填充的下拉列表。
在决定加载时显示的默认值时,我意识到以下属性显示的值完全相同:
innerTextinnerHTMLlabeltexttextContentouterText
我自己的研究显示了一些基准测试或比较,但不是全部。
我可以根据自己的常识选择 1 或其他,因为它们提供相同的结果,但是,我担心如果数据发生变化,这将不是一个好主意。
我的发现是:
-
innerText将按原样显示值并忽略可能包含的任何 HTML 格式 -
innerHTML将显示值并应用任何 HTML 格式 -
label好像和innerText一样,所以看不出区别 -
text似乎与innerText相同,但为 jQuery 速记版本 -
textContent看起来与innerText相同,但保留格式(例如\n) -
outerText似乎与innerText相同
我的研究只能让我走到尽头,因为我只能测试我能想到的或阅读已发表的内容,任何人都可以确认我的研究是否正确以及label 和 @987654349 是否有什么特别之处@?
【问题讨论】:
-
访问文本的方式如此之多的原因之一是跨浏览器的差异。如果您已经在使用 jQuery,您应该使用
.text()来获取元素的文本内容,因为这将提供最大的跨浏览器支持。 -
MDN 文档:
innerText、innerHTML(forShadowRoots)、labelandtext(label和text也存在于许多与媒体相关的原型中)、textContent、outerText.
标签: javascript html dom