日期:2014-05-16  浏览次数:20611 次

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浏览器 。