Node: textContent 屬性
Node 介面的 textContent 屬性表示該節點及其後代節點的文字內容。
注意:textContent 和 HTMLElement.innerText 很容易混淆,但這兩個屬性有 重要的區別。
值
一個字串,或者 null。其值取決於具體情況。
-
如果該節點是
document或 doctype,則textContent返回null。注意:要獲取整個文件的所有文字和 CDATA 資料,請使用
document.documentElement.textContent。 -
如果該節點是 CDATA 部分、註釋、處理指令或文字節點,則
textContent返回或設定節點內的文字,即Node.nodeValue。 -
對於其他節點型別,
textContent返回所有子節點的textContent的串聯,但不包括註釋和處理指令。(如果節點沒有子節點,則為空字串。)
警告:在節點上設定 textContent 會移除該節點所有的子節點,並用一個具有給定字串值的文字節點替換它們。
與 innerText 的區別
不要混淆 Node.textContent 和 HTMLElement.innerText 之間的區別。儘管名稱相似,但它們之間存在重要的差異。
與 innerHTML 的區別
Element.innerHTML 如其名稱所示,用於獲取或設定 HTML。我們不建議使用 innerHTML 來獲取或設定元素內的文字,因為它處理的是原始 HTML 而不是純文字,並且可能容易受到 XSS 攻擊。即使您確定文字不包含 HTML 語法,它仍然不夠語義化且速度較慢,因為它需要呼叫 HTML 解析器。
示例
從這個 HTML 片段開始。
html
<div id="divA">This is <span>some</span> text!</div>
您可以使用 textContent 來獲取元素的文字內容。
js
let text = document.getElementById("divA").textContent;
// The text variable is now: 'This is some text!'
如果您想設定元素的文字內容,可以這樣做:
js
document.getElementById("divA").textContent = "This text is different!";
// The HTML for divA is now:
// <div id="divA">This text is different!</div>
規範
| 規範 |
|---|
| DOM # dom-node-textcontent |
瀏覽器相容性
載入中…