iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 11
0
自我挑戰組

半路出家,文組新手學 Javascript系列 第 11

DAY 11 textContent vs innerText vs innerHTML

  • 分享至 

  • xImage
  •  

現在在跟五倍的組員們做專案,常常會遇到從後端撈到資料的時候,要把資料塞在前端顯示。

textContent 和 innerHTML 每次我都要再多查一次 check,今天就來比較一下這三種的作法,看看這樣我會不會印象深一點,以後就不用再查(做一下夢)

textContent

可以拿到選取範圍的文字包含空格

從 Code 來看

HTML結構

<div class="box">
  <h2> 星期五</h2>
  <p> 我在家寫 code</p>
</div>

JavaScript

let txt = document.querySelector('.box')

console.log(txt.textContent)

Output

"
   星期五
   我在家寫 code
"

innerContent

單純的選取的文字

HTML結構

<div class="box">
  <h2> 星期五</h2>
  <p> 我在家寫 code</p>
</div>

JavaScript

let txt = document.querySelector('.box')

console.log(txt.innerContent)

Output

"星期五

我在家寫 code"

來比較一下,textContent 和 innerContent 的不同

可以看到 innerText 的文字長度比 texrContent 短

innerHTML

選取的文字,包含 HTML 的 tag

HTML結構

<div class="box">
  <h2> 星期五</h2>
  <p> 我在家寫 code</p>
</div>

JavaScript

let txt = document.querySelector('.box')

console.log(txt.innerHTML)

Output

"
  <h2> 星期五</h2>
  <p> 我在家寫 code</p>
"

在實作的時候,通常會搭配監聽事件來看 function 要做什麼事情。

舉個例子,
我們在聊天室時,點下 share 的 icon,我們希望在點下 share button 的瞬間,把資料抓到,讓使用填的 share form 內,我們就可以用到上面的這些方法。

首先我們要先監聽事件

document.querySelectorAll('.share-btn').forEach((e)=>{
  e.addEventListener('click', function (e) {
    let shareContent = e.target.parentNode.querySelector('.content').textContent
    let selectMessage = document.querySelector('.select-message')
    selectMessage.textContent = shareContent
  })
})

這樣就可以把我們抓到的資料,丟到我們希望他在的區塊。


學寫程式學到現在,覺得要學的東西,真的很多,但是一邊學也一邊覺得很好玩,慶幸自己沒有被氣餒打敗。

雖然寫不出很多很複雜的 code,可是慢慢會的東西越來越多的時候,還是覺得很開心。

明天見。


上一篇
DAY 10 HTTP狀態碼
下一篇
DAY 12 網頁資料儲存 Cookie
系列文
半路出家,文組新手學 Javascript30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言