innerText
,text()
和html()
之间的区别是什么?
答案 0 :(得分:29)
innerText
(如果您使用的是jQuery,则为text()
)不包含任何HTML标记。所以如果你有一个div包含:
View my <a href="profile.html">profile</a>
innerText
/ text()
将返回
View my profile
而html()
将返回
View my <a href="profile.html">profile</a>
正如dcneiner指出html()
/ text()
是jQuery属性(并且跨浏览器支持),而innerText并非由所有浏览器实现(尽管它适用于最新版本的IE,Safari和铬)。
基本上你只要有可能就会使用text()
而不是innerText。有关text()
令人敬畏的其他一些内容,请参阅dcneiner's post(或jQuery docs)。
答案 1 :(得分:11)
区别在于innerText
是DOM对象上的IE唯一属性,而html()
是jQuery对象的函数。
但是,如果您要比较text()
和html()
,则区别在于text()
在返回之前从元素的内容中删除所有HTML,html()
包括HTML。
此外,text()
将返回所有匹配元素的文本并将它们连接在一起:
<span>Hi, </span><span>how are </span><span>you?</span>
$("span").text(); // returns: Hi, how are you?
但html()
只返回第一个匹配的商品innerHTML
属性:
$("span").html(); // returns: Hi,
最后一件很酷的事情是.text()
自动转义所有HTML:
$("span:first").text('<a>Hi</a>'); // writes <a>Hi</a>