innerText和html之间的区别

时间:2009-12-03 00:45:22

标签: javascript jquery

innerTexttext()html()之间的区别是什么?

2 个答案:

答案 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 &lt;a&gt;Hi&lt;/a&gt;