innerHTML、outerHTML、innerText、outerText的区别
今天面试又看到这样的题了,总结下供大家参考:
概念性问题
innerHTML 设置或获取位于对象起始和结束标签内的 HTML
outerHTML 设置或获取对象及其内容的 HTML 形式
innerText 设置或获取位于对象起始和结束标签内的文本
outerText 设置(包括标签)或获取(不包括标签)对象的文本
操作真想分析
<ul>
<li id="io">初期显示</li>
</ul>
io.innerHTML="<i><u>设置或获取位于对象起始和结束标签内的 HTML.</u></i>"; (以下为执行后结果)
<ul>
<li id="io"><i><u>设置或获取位于对象起始和结束标签内的 HTML.</u></i></li>
</ul>
其中的<i><u>标签将会被解析(页面不会显示<i><u>)
io.outerHTML="<i><u>设置或获取对象及其内容的 HTML 形式.</u></i>"; (以下为执行后结果)
<ul>
<i><u>设置或获取对象及其内容的 HTML 形式.</u></i>
</ul>
其中的<i><u>标签将会被解析(页面不会显示<i><u>)
io.innerText="<i><u>设置或获取位于对象起始和结束标签内的文本.</u></i>"; (以下为执行后结果)
<ul>
<li id="io">"<i><u>设置或获取位于对象起始和结束标签内的文本.</u></i>"</li>
</ul>
其中的<i><u>标签将不会被解析(页面会显示<i><u>)
io.outerText="<i><u>设置(包括标签)或获取(不包括标签)对象的文本.</u></i>";(以下为执行后结果)
<ul>
"<i><u>设置(包括标签)或获取(不包括标签)对象的文本.</u></i>"
</ul>
其中的<i><u>标签将不会被解析(页面会显示<i><u>)
以上使用不同点总结
innerHTML与outerHTML在设置对象的内容时包含的HTML会被解析,而innerText与outerText则不会。
innerHTML与innerText仅设置标签内的文本,而outerHTML与outerText设置包括标签在内的文本。
注意:
innerHTML是符合W3C标准的属性,而innerText只适用于IE浏览器 。