DOM筆記——元素內容插入/獲取合集
阿新 • • 發佈:2020-12-13
方法 or 屬性 | 是否覆蓋原居民 | 獲取的內容 | 瀏覽器 | |
---|---|---|---|---|
element.insertAdjacentHTML(position, text) | 方法 | 不覆蓋 | x | ok |
element.insertAdjacentText(position, element) | 方法 | 不覆蓋 | x | ok |
element.innerHTML | 屬性 | 覆蓋 | 獲取標籤內,包括HTML標籤,保留空格換行。 | ok |
element.innerText | 屬性 | 覆蓋 | 獲取標籤內,展示給人看的元素內容,不包含標籤,同時空格和換行也會去掉。 | ok |
element.outerHTML | 屬性 | 覆蓋 | 獲取包含元素本身標籤,包括HTML標籤,保留空格換行。 | ok |
Node.textContent | 屬性 | 覆蓋 | 會獲取所有元素的內容,但不包含標籤。(js 和 隱藏的內容也會獲取) | IE9+ |
插入區別
- 用
innerHTML
插入文字到網頁中並不罕見。但這有可能成為網站攻擊的媒介,從而產生潛在的安全風險問題。 - 當插入純文字時,建議不要使用
innerHTML
。取而代之的是使用Node.textContent
,它不會把給定的內容解析為 HTML,它僅僅是將原始文字插入給定的位置。 - 如果要向一個元素中插入一段 HTML,而不是替換它的內容,那麼請使用
insertAdjacentHTML()
方法。
四種獲取內容的區別
<div class="div1">點我呀 <span style="color: royalblue;">原住民span</span> <span style="display: none;">原住民span</span> <script> var a = 1; </script> </div> <script> var div1 = document.querySelector('.div1'); div1.addEventListener('click',function () { console.log('textContent:\n' + this.textContent); console.log('innerText\n' + this.innerText); console.log('innerHTML\n' + this.innerHTML); console.log('outerHTML\n' + this.outerHTML); }) </script>