来自 Web前端 2020-04-29 17:43 的文章
当前位置: 网上澳门金莎娱乐 > Web前端 > 正文

textContent、【网上澳门金莎娱乐】innerText、innerHTML的区别和差异

时间: 2019-09-09阅读: 201标签: 区别先看看下面这个demo,不言自明:

目录

1. 语法
2. 描述
3. 与innerText的区别
4. 与innerHTML的区别
5. 归属区别
!DOCTYPE htmlhtml lang="en"head meta charset="UTF-8" titleDocument/title/headbody style button{ border:1px solid red; } /style div  北京上海广州span深圳厦门/span陕西西安 p台湾香港澳门/p /div button οnclick="myFunction()"我是按钮/button script function myFunction(){ console.log(event.type); } let container = document.querySelector("body"); console.log("textContent的内容是:",container.textContent); console.log("innerText的内容是:",container.innerText); console.log("innerHTML的内容是:",container.innerHTML); /script/body/html

内容


Node.textContent 属性表示一个节点及其后代的文本内容。

1、通过textContent属性可以获取指定节点的文本,以及该指定节点所包含后代节点中文本内容,也包括script和style元素中的内容(这里的不是文本而是CSS样式代码和JavaScript代码)

1. 语法

let text = element.textContent;
element.textContent = "this is some sample text";

2、IE引入了node.innerText属性,该属性会获取指定节点的文本以及后代节点中的文本,不能获取style和script中的内容。

2. 描述

  • 如果 element 是 Document,DocumentType 或者 Notation 类型节点,则 textContent 返回 null。如果你要获取整个文档的文本以及CDATA数据,可以使用 document.documentElement.textContent。
  • 如果节点是个CDATA片段,注释,ProcessingInstruction节点或一个文本节点,textContent 返回节点内部的文本内容(即 nodeValue)。
  • 对于其他节点类型,textContent 将所有子节点的 textContent 合并后返回,除了注释、ProcessingInstruction节点。如果该节点没有子节点的话,返回一个空字符串。
  • 在节点上设置 textContent 属性的话,会删除它的所有子节点,并替换为一个具有给定值的文本节点。

3、innerHTML顾名思义就是获取指定元素内的HTML内容。

3. 与innerText的区别

Internet Explorer 引入了 node.innerText。意图类似,但有以下区别:

  • textContent 会获取所有元素的内容,包括 <script><style> 元素,然而 innerText 不会。
  • innerText意识到样式,并且不会返回隐藏元素的文本,而textContent会。
  • 由于 innerText 受 CSS 样式的影响,它会触发重排(reflow),但textContent 不会。
  • 与 textContent 不同的是, 在 Internet Explorer (对于小于等于 IE11 的版本) 中对 innerText 进行修改, 不仅会移除当前元素的子节点,而且还会永久性地破坏所有后代文本节点(所以不可能再次将节点再次插入到任何其他元素或同一元素中)。

本文由网上澳门金莎娱乐发布于Web前端,转载请注明出处:textContent、【网上澳门金莎娱乐】innerText、innerHTML的区别和差异

关键词: