textContent、innerText、innerHTML的区别和差异

时间: 2019-09-09阅读: 247标签: 区别

先看看下面这个demo,不言自明:  

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    <style>
        button{
            border:1px solid red;
        }
    </style>
    <div class="contain">
        北京上海广州<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>

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

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

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


textContent、innerText、innerHTML的区别和差异 

 1 、textContent属性可以获取指定节点的文本及其后代节点中文本内容,也包括<script>和<style>元素中的内容; innerText也是获取指定节点的文本及其后代节点中文本内容,但不能获取<script>和<style>元素中的内容。 innerHTML是获取HTML文本结构内容。 

 2、textContent会获取display:none的节点的文本;而innerText好像会感知到节点是否呈现一样,不作返回。 也就是说,textContent能够获取元素的所有子节点上的文本,不管这个节点是否呈现;而innerText只返回呈现到页面上的文本。 

 3、要注意设置文本时被替换的可不只是文本了;这时textContent 、innerText属性相当于innerHTML属性,会把指定节点下的所有子节点也一并替换掉。 

 4、由于 innerText 受 CSS 样式的影响,它会触发重排(reflow),但 textContent 不会。

吐血推荐

1.站长广告联盟: 整理了目前主流的广告联盟平台,如果你有流量,可以作为参考选择适合你的平台点击进入...

2.休闲娱乐: 直播/交友    优惠券领取   网页游戏   H5游戏

链接: http://www.fly63.com/article/detial/5198

js对象属性通过“.”和“[ ]”访问的区别

(.) 点操作符: 静态的。右侧必须是一个以属性名称命名的简单标识符。属性名用一个标识符来表示。标识符必须直接出现再js程序中,它们不是数据类型,因此程序无法修改它们。([]) 中括号操作符: 动态的。方括号里必须是一个计算结果为字符串的表达式

call,apply,bind的用法以及区别

当一个函数被保存为对象的一个方法时,如果调用表达式包含一个提取属性的动作,那么它就是被当做一个方法来调用,此时的this被绑定到这个对象。此时的this是指obj1这个对象,obj1.fn()实际上是obj1.fn.call(obj1),事实上谁调用这个函数,this就是谁。

js中onload和ready区别

$(document).ready() 和 window.onload 在表面上看都是页面加载时我们就去执行一个函数或动作,但是在具体的细节上$(document) ready()和window onload还是有区别的

行内元素和块级元素之间有什么区别?

在html+css基础当中,我们往往会遇到块元素和行内元素。在实际开发中,会经常把他们弄混淆,而且很难记住。那么行内元素和块级元素之间有什么区别?行内元素和其他行内元素都会在一条水平线上排列,都是在同一行的;块级元素却总是会在新的一行开始排列,各个块级元素独占一行

区别 module.exports 与 exports

Node.js 模块里,我们经常见着 module.exports 与 exports 。二者区别在哪?那,什么时候只能用 module.exports ?什么时候只能用 exports ?从 模块编写者 的角度出发,并没有什么区别,二者都能用;若非要说个区别

HTML5和Web前端有什么区别?

很多小伙伴都知道HTML5这个概念,但是具体不知道是做什么的,今天我们就来给大家普及一下HTML5和web前端的关系和区别。HTML5其实是一种技术的集合,它包括了HTML5,CSS3,JS等技术。而Web前端则是一种职业

Js中parseInt()和Number()之间有什么区别?

Number()和parseInt()都可以用来进行数字的转换,那么parseInt()和Number()之间的区别是什么?parseInt()函数用于解析字符串并将其转换为指定基数的整数。它需要两个参数,要解析的字符串和要使用的基数。基数是一个介于2和36之间的整数,表示数字的基数。

继承行为在 ES5 与 ES6 中的区别

最近在看 React 方面的一些文章时,看到了这样一个问题,「为什么每个 class 中都要写 super, super 是做什么的?」, 刚看到这个问题时,直接就想到了继承行为在 javascript 中的表现。

HTML中name、id、class的区别介绍

在一个页面中,有许多的控件(元素或标签)。为了更方便的操作这些标签,就需要给这些标签标识一个身份牌。在HTML中有name、id、class等属性区分一个元素,下面我们就来看一下这几种属性的区别。

HTTP中POST方法和GET方法的区别

而post方法会产生两个TCP数据包,浏览器会先将Header发送出去,服务器响应100(Continue)后,浏览器再发送Data,服务器响应200(OK),并回传相应的数据,那么为什么post方式那么好,还会使用get方法呢?

fly63.com版权所有,内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权,请与小编联系!情况属实本人将予以删除!

文章投稿关于web前端网站点搜索站长推荐网站地图站长QQ:522607023

小程序专栏: 土味情话心理测试脑筋急转弯幽默笑话段子句子语录成语大全