innerHTML,innertext,textContent區別


 1 <!DOCTYPE html>
 2 <html>
 3     <head>
 4         <meta charset="UTF-8">
 5         <title></title>
 6         <style>
 7             .demo{
 8                 visibility: hidden;
 9             }
10             .test{
11                 display: none;
12             }
13         </style>
14     </head>
15     <body>
16         <div id="demo">
17             放到<p class="demo">螞蟻不是螞蟻</p>撒大蘇打
18         </div>
19         <div id="test">
20             放到<p class="test">螞蟻不是螞蟻</p>撒大蘇打
21         </div>
22         
23         
24         <script type="text/javascript">
25             let demo = document.getElementById("demo")
26             console.log("1"+demo.innerHTML,"2"+demo.textContent,"3"+demo.innerText)
27 //            1
28 //            放到<p class="demo">螞蟻不是螞蟻</p>撒大蘇打
29 //         2
30 //            放到螞蟻不是螞蟻撒大蘇打
31 //         3放到
32 //
33 //撒大蘇打
34             let text = document.getElementById("test")
35             console.log("1"+test.innerHTML,"2"+test.textContent,"3"+test.innerText)
36 //            1
37 //            放到<p class="test">螞蟻不是螞蟻</p>撒大蘇打
38 //         2
39 //            放到螞蟻不是螞蟻撒大蘇打
40 //         3放到撒大蘇打
41 
42             //在讀模式下,innerHTML 屬性返回與調用元素的所有子節點(包括元素、注釋和文本節點)對應的 HTML 標記。在寫模式下,innerHTML 會根據指定的值創建新的 DOM 樹,然后用這個 DOM 樹完全替換調用元素原先的所有子節點。copy
43             //
44             //通過 innerText 屬性可以操作元素中包含的所有文本內容,包括子文檔樹中的文本。在通過 innerText 讀取值時,它會按照由淺入深的順序,將子文檔樹中的所有文本拼接起來。
45             //在通過 innerText 寫入值時,結果會刪除元素的所有子節點,插入包含相應文本值的文本節點。會解析
46             //textContent  copy+解析+不會受干擾(hidden,none)
47         </script>
48     </body>
49 </html>

可以聯系之前再vue中的一個坑,當你設置display:none的時候那個元素是不占空間了,但是他依舊在哪里並沒有消失,v-for為false的時候才是真的沒了,聯系

這里的情況可以這樣理解這幾個元素,innerHTML就是搬運工,不動腦子就搬過來了,textContent卻把代碼搬過來並且解析不受樣式的影響,innerText解析代碼但是受樣式影響的(ps:display:none不占空間,visibility:hidden占空間)


免責聲明!

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



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