Hi 🤓 Cảm ơn bạn đã ghé thăm blog này, nếu những bài viết trên blog giúp ích cho bạn. Bạn có thể giúp blog hiển thị quảng cáo bằng cách tạm ngừng ad blocker 😫 và để giúp blog duy trì hoạt động nếu bạn muốn.
Cảm ơn bạn!

Chào các bạn, trong bài viết này chúng ta cùng tìm hiểu sự khác nhau giữa hai thuộc tính textContent vs innerText trong JavaScript nhé.

Ví dụ textContent và innerText

Dưới đây là một ví dụ HTML các bạn có thể xem qua:

<div>
  <p>Sự khác nhau giữa textContent và innerText</p>
  <p>homiedev.com</p>
</div>

Bây giờ, chúng ta sẽ lấy thẻ div để sử dụng:

const divElement = document.querySelector('div');

Sau đó, sử dụng hai thuộc tính textContentinnerText như bên dưới:

console.log("textContent: ", divElement.textContent);
console.log("innerText: ", divElement.innerText);

Chúng ta sẽ thấy kết quả là tất cả đoạn text có trong div sẽ được lấy ra:

textContent vs innerText example

Bạn thấy nội dung văn bản được lấy ra là giống nhau, bây giờ ta thử ẩn phần tử p thứ hai đi bằng một trong những cách sau:

  1. Sử dụng CSS display: none
  2. Sử dụng CSS visibility: hidden
  3. Sử dụng hidden attribute của HTML

Ở đây mình sử dụng hidden attribute cho ví dụ trên nhé:

<div>
  <p>Sự khác nhau giữa textContent và innerText</p>
  <p hidden>homiedev.com</p>
</div>

hoặc

<div>
  <p>Sự khác nhau giữa textContent và innerText</p>
  <p style="visibility: hidden">homiedev.com</p>
</div>

Bạn đọc thể đọc bài viết sự khác nhau giữa display: none vs visibility: hidden trong CSS để xem sự khác nhau giữa hai thuộc tính này.

Bây giờ sử dụng textContentinnerText và kiểm tra console thì kết quả nhận được sẽ như sau:

textContent vs innerText in JavaScript

Như vậy chúng ta có thể thấy rõ được sự khác nhau giữa textContentinnerText ở ví dụ trên:

  • Sử dụng textContent sẽ lấy nội dung của tất cả phần tử bao gồm phần tử bị ẩn đi. Ngược lại, innerText sẽ chỉ lấy nội dung của những phần tử là "human-readable" tức là những phần tử không bị ẩn đi bằng cách sử dụng thuộc tính như mình đã liệt kê ở trên.

Vì thuộc tính innerText có kiểm tra CSS styles nên quá trình này có thể mất đôi chút thời gian, chúng ta nên tránh sử dụng innerText trừ trường hợp cần thiết.


Hi vọng bài viết giúp ích cho các bạn. Đừng quên theo dõi blog Homiedev để có thể xem được những bài viết mới nhất về front-end nhé 😄.

Có thể bạn thích ⚡
homiedev
About Me

Hi, I'm @devnav. Một người thích chia sẻ kiến thức, đặc biệt là về Frontend 🚀. Trang web này được tạo ra nhằm giúp các bạn học Frontend hiệu quả hơn 🎉😄.

Chúc các bạn tìm được kiến thức hữu ích trong blog này 😁😁.