innerHTML、innerText、outerHTML、outerText区别

1、区别:

(1) innerHTML 设置或获取位于对象起始和结束标签内的 HTML,例子:

<div id="div1">hello world</div>
<div id="div2">
<span>BEI</span>
<p>JING</p>
</div>

执行console.log(document.getElementById('div1').innerHTML);输出:hello world
执行console.log(document.getElementById('div2').innerHTML);输出:<span>BEI</span><p>JING</p>
执行document.getElementById('div1').innerHTML=‘qingdao’会设置div1中的内容为:qingdao
执行document.getElementById('div1').innerHTML='<div>'+'qingdao'+'</div>',此时页面显示的内容依旧是qingdao,标签名会自动解析,不会输出。     

(2)outerHTML 设置或获取对象及其内容的 HTML 形式,例子:

执行console.log(document.getElementById('div1').outerHTML);输出:
<div id="div1">hello world</div>
执行console.log(document.getElementById('div2').outerHTML);输出:
<div id="div2">

<span>BEI</span>

<p>JING</p>

</div>
与innerHTML不同的是,对象本身的标签也包含进去了。在设置outerHTML时,和innerHTML一样

(3)innerText 设置或获取位于对象起始和结束标签内的文本,例子:

执行console.log(document.getElementById('div1').innerText);输出:hello world
执行console.log(document.getElementById('div2').innerText);输出:
BEI
JING
注意到区别了吗,输出div2中的内容时,标签是不包含在内的。在设置innerText时,执行:
document.getElementById('div1').innerText='<div>'+'qingdao'+'</div>';此时页面显示的内容是<div>qingdao</div>,此时标签名没有被解析,当作字符原样输出

(4)outerText 设置(包括标签)或获取(不包括标签)对象的文本

执行console.log(document.getElementById('div1').outerText);输出:hello world
执行console.log(document.getElementById('div2').outerText);输出:
BEI
JING
不过,设置outerText的值时,可以解析标签名。

2、示例代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">  
<html>  
<head>  
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">  
<title>innerHTML、outerHTML和innerText、outerHTML的区别</title>  
    <script language="JavaScript" type="text/javascript">   
  //.innerHTML  
  function innerHTMLDemo()  
  {   
   test_id1.innerHTML="<i><u>设置或获取位于对象起始和结束标签内的 HTML.</u></i>";   
  }   
  //.innerText  
  function innerTextDemo()  
  {   
   test_id2.innerText="<i><u>设置或获取位于对象起始和结束标签内的文本.</u></i>";   
  }   
  //.outerHTML  
  function outerHTMLDemo()  
  {   
   test_id3.outerHTML="<font size=9pt color=red><i><u>设置或获取对象及其内容的 HTML 形式.</u></i></font>";   
  }  
  //.outerText  
  function outerTextDemo()  
  {   
   test_id4.outerText="<br></br><i><u>设置(包括标签)或获取(不包括标签)对象的文本.</u></i>";   
  }  
  </script>   
  </head>   
  <body>   
  <ul>   
  <li id="test_id1" onclick="innerHTMLDemo()">innerHTML效果.</li>   
  <li id="test_id2" onclick="innerTextDemo()">innerText效果.</li>   
  <li id="test_id3" onclick="outerHTMLDemo()">outerHTML效果.</li>   
  <li id="test_id4" onclick="outerTextDemo()">outerText效果.</li>   
  </ul>   
  </body>   
  </html>  

3、不同之处:  
   简单的说innerHTML和outerHTML、innerText与outerText的不同之处在于: 
  1)、innerHTML与outerHTML在设置对象的内容时包含的HTML会被解析,而innerText与outerText则不会。 
  2)、在设置时,innerHTML与innerText仅设置标签内的文本,而outerHTML与outerText设置包括标签在内的文本。 
    对于一个id为"testdiv"的div来说,outerHTML、innerHTML以及innerTEXT三者的区别可以通过下图展示出来:

  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值