Js—innerHTML和innerText的區別


1.innerHTML屬性和innerText屬性

  都是對元素的一個操作,簡單講,innerHTML可以在某種特定環境下重構某個元素節點的DOM結構,innerText只能修改文本值

 

  在JavaScript高級程序設計(第三版)是這樣描述的: 

    在只讀模式下,innerHTML返回與調用元素的所有子節點(包括元素、注釋和文本節點)對應的HTML標記。

    

<div>
  這是一個div標簽
  <div>這里又是一個div標簽</div>
</div> var div = document.getElementsTagName("div")[0]; console.log(div.innerHTML); // 這是一個div標簽<div>這里又是一個div標簽</div> console.log(div.innerText);  
//這是一個div標簽
//這里又是一個div標簽

    結果顯而易見,innerHTML會返回一個帶標簽的值,innerText只會返回文本值,如果有換行,也會返回換行。

 

    在寫入模式下,innerHTML會根據指定的值創建新的DOM樹,替換掉調用元素的所有子節點。

<div>
  這是一個div標簽
  <div>這里又是一個div標簽</div>
</div>


var div = document.getElmentsByTagName('div')[0];

div.innerHTML = "<a href="#">我是一個鏈接</a>";
div.innerText= "<a href="#">我是一個鏈接</a>";
//設置innerHTML后div結構變成
<div><a href="#">我是一個鏈接</a></div>

//設置innerText后div結構變成
<div><a href="#">我是一個鏈接</a></div>
這是的a只是純文本,在頁面上只是文字,並沒有渲染成a元素

  

  技巧分享: 當需要添加的innerHTML為DOM結構另一個元素的文本內容時,可以使用下面的操作

 

this.innerHTML = documen.body.innerHTML.replace(/<.+?>/gim,'');

//去掉標簽

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM