innerText so với innerHTML so với textContent trong JavaScript

Ảnh của Walkator trên Unsplash

Vài tuần trước, tôi đang làm việc gì đó và có một trong những câu 'Aha!' những khoảnh khắc mà điều gì đó có ý nghĩa sâu sắc đến mức tôi tự nhủ rằng mình nên khám phá nó và viết về nó.

Thật không may, tôi không nhớ mình đã làm việc gì hay câu 'Aha!' thời điểm là chính xác. Vì vậy, tôi sẽ đi sâu vào và xem liệu tôi có thể khám phá lại nó hay không.

innerText

Trong JavaScript vani, innerText chỉ lấy văn bản được hiển thị của một phần tử HTML. Về bản chất, văn bản hiển thị trong trình duyệt là thứ mà innerText lấy.

HTML

<p id=“example”>This is an <span> example </span>.</p>

JavaScript

var x = document.getElementById(“example”).innerText;

Một số điều cần ghi nhớ:

  • nếu các phần tử bị ẩn với CSS (bằng cách sử dụng một cái gì đó như thuộc tính 'hiển thị' hoặc 'khả năng hiển thị') thì innerText không thể truy cập chúng
  • innerText sẽ KHÔNG trả về nội dung của các phần tử <script> hoặc <style>

Điều này thực sự sẽ lấy hoặc thiết lập nội dung bên trong của một phần tử HTML.

Khi truy xuất nội dung bên trong, nó cũng sẽ bao gồm bất kỳ thẻ khoảng cách và phần tử bên trong nào như <li> hoặc <span>, v.v.

HTML

<p id=“example”>This is an <span> example </span>.</p>

var x = document.getElementById(“example”).innerHTML;

Để thay đổi nội dung của một phần tử HTML:

document.getElementById(“example”).innerHTML = “And <strong> NOW </strong> the contents have been changed!”;

*** Vì innerHTML có thể được sử dụng để thay đổi nội dung trên một trang, nên các thẻ <script> nguy hiểm và các cuộc tấn công JavaScript khác có thể được thực thi. ***

*** Do đó, không nên sử dụng innerHTML. ***

Thay vào đó, hãy thử sử dụng textContent.

textContent

Thao tác này sẽ trả về nội dung văn bản có khoảng cách (tương tự như innerHTML), nhưng không có bất kỳ thẻ phần tử bên trong nào.

Để lấy textContent:

HTML

<p id=“example”>This is an <span> example </span>.</p>

var x = document.getElementById(“example”).textContent;

Để đặt textContent, chỉ cần làm như vậy với ví dụ bên trongHTML ở trên.

document.getElementById(“example”).textContent = “And <strong> NOW </strong> the contents have been changed!”;

  • sẽ trả về nội dung văn bản của tất cả các phần tử bao gồm <script> và <style>
  • sẽ trả về văn bản của các phần tử bị ẩn bằng CSS

Suggested posts

Tìm kiếm thông tin về tên miền

Đoạn trích từ Small, Sharp Software Tools của Brian P. Hogan

Tìm kiếm thông tin về tên miền

Khi bạn gửi yêu cầu tới facebook.com, máy tính của bạn sẽ tra cứu tên miền để dịch tên miền đó thành địa chỉ IP để máy tính của bạn có thể thực hiện kết nối đó.

Cuộc cách mạng không cần mã: Giải phóng sự thịnh vượng trong kinh doanh với Webflow, Framer, Bubble.io,

Cuộc cách mạng không cần mã: Giải phóng sự thịnh vượng trong kinh doanh với Webflow, Framer, Bubble.io,

Bắt tay vào một hành trình đổi mới và thành công ly kỳ khi bạn khai thác tiềm năng chưa được khai thác của các nền tảng không mã đáng ngạc nhiên này. Để tôi chia sẻ với bạn một câu chuyện về Sapna, một nữ doanh nhân xuất sắc.

Related posts

Thu thập OSINT để săn lùng mối đe dọa

Thu thập OSINT để săn lùng mối đe dọa

Xin chào, những người đam mê mạng! Chào mừng bạn quay trở lại OSINT cho loạt bài săn tìm mối đe dọa. Trong bài viết đầu tiên, tôi đã cung cấp cho bạn cái nhìn tổng quan về OSINT và tầm quan trọng của nó trong việc tìm kiếm mối đe dọa.

Nghệ thuật có bao giờ phi chính trị?

Nghệ thuật có bao giờ phi chính trị?

Hôm qua, chúng ta đã khép lại cuộc thi Ca khúc Eurovision năm nay bằng một đêm chung kết hoành tráng, hỗn loạn, nơi ca sĩ người Thụy Điển Loreen đã mang về chiếc cúp, trở thành người phụ nữ đầu tiên giành chiến thắng hai lần và mang vương miện về cho Thụy Điển 50 năm sau khi ABBA giành chiến thắng trong cuộc thi với “Waterloo”. Họ tiếp tục trở thành một trong những nghệ sĩ lớn nhất trong thể loại nhạc pop.

Vụ sát hại Jordan Neely và vấn đề phân biệt chủng tộc “yêu nước”

Hoa Kỳ có thể thực hiện một bước thiết yếu là không đánh đồng hành vi phân biệt chủng tộc với việc trở thành một người Mỹ tốt không?

Vụ sát hại Jordan Neely và vấn đề phân biệt chủng tộc “yêu nước”

[Cảnh báo kích hoạt: Bài tiểu luận này bao gồm các bức ảnh chụp màn hình những người ca ngợi kẻ giết Jordan Neely.] Các quan chức thực thi pháp luật cuối cùng - và có lẽ miễn cưỡng - đã buộc tội Daniel Penny, kẻ đã bóp cổ Jordan Neely cho đến chết, vì tội giết người đó.

Tạo Môi Trường Làm Việc An Toàn

Tạo Môi Trường Làm Việc An Toàn

“Anh ấy sẽ bảo vệ tôi khi tôi gặp nguy hiểm. Anh ấy sẽ giấu tôi trong lều của anh ấy.