区分:outerHTML - innerTHML - outerText - innerText - textContent

获取值

<div id="outer">
外部
<div id="inner">
内部
<span style="display:none">浙江省</span>
<!-- 这是注释 -->
<span>杭州西湖美</span>
</div>
</div>
var d_outer = document.querySelector("#outer")
var d_inner = document.querySelector("#inner") // 获取值
console.log("outerHTML >>>",d_outer.outerHTML)
console.log("innerHTML >>>",d_outer.innerHTML)
console.log("outerText >>>",d_outer.outerText)
console.log("innerHTML >>>",d_outer.innerText)
console.log("textContent >>>",d_outer.textContent)
outerHTML >>> <div id="outer">
外部
<div id="inner">
内部
<span style="display:none">浙江省</span>
<span>杭州西湖美</span>
</div>
</div>
innerHTML >>>
外部
<div id="inner">
内部
<span style="display:none">浙江省</span>
<span>杭州西湖美</span>
</div> outerText >>> 外部
内部 杭州西湖美
innerHTML >>> 外部
内部 杭州西湖美
textContent >>>
外部 内部
浙江省 杭州西湖美

  • outerHTML会获取包括其自身,以及后代元素的所有HTML内容。意义上的包含outer外部即自身,会对内容中的标签符号进行转义。
  • innerHTML获取除自身外的,内部HTML内容。意义上的inner内部,会对内容中标签符号进行转义。
  • outerText微软IE浏览器最先提出的属性,暂未被写入W3C标准,但被大部分其它厂商浏览器支持,获取其包含的所有元素节点文本内容,但不包括隐藏的元素节点。
  • innerText同样是微软提出的属性,但2016年已被写入W3C标准。获取所有文本内容,获取值时表现也outerText一致。获取其包含的所有元素节点文本内容,但不包括隐藏的元素节点。
  • textContent获取所有节点的文本内容。虽然都是获取文本内容,但是与outerText/innerText有很多不同:
    • 可以返回隐藏元素的文本内容;
    • textContent属性不仅对元素节点有效。对于属性节点,注释节点等都是有效的,也会返回<style><script>节点的文本内容;
    • 对.\t、\r、\n与连续的空格效果会生效,虽然我们只演示了\n换行。但outerText/innerText只对div元素节点显示换行

赋值

outerHTML赋新值
d_outer.outerHTML = "<span>这是outerHTML的赋值</span>"
// outerHTML赋值后再获取值,并不是最新的值,还是原来的值
console.log("outerHTML >>>",d_outer.outerHTML)
console.log("innerHTML >>>",d_outer.innerHTML)
console.log("outerText >>>",d_outer.outerText)
console.log("innerHTML >>>",d_outer.innerText)
console.log("textContent >>>",d_outer.textContent)

d_outer.outerHTML赋值表现与取值一样,会包括自身元素一起,都被替换,不会在页面中显示,但原有DOM片段仍在内存中,所以再次获取值仍然与赋值前一样。

传送门:MDN

innerHTML赋值
d_outer.innerHTML = "<span>这是innerHTML的赋值</span>"
// innerHTML赋值后再获取值,前后表现一致,为最新的值
console.log("outerHTML >>>",d_outer.outerHTML)
console.log("innerHTML >>>",d_outer.innerHTML)
console.log("outerText >>>",d_outer.outerText)
console.log("innerHTML >>>",d_outer.innerText)
console.log("textContent >>>",d_outer.textContent)

d_outer.innerHTML赋值表现与取值一致,仅对内部内容进行替换,并且重新获取值是最新内容。

outerText赋值
d_outer.outerText = "<span>这是outerText的赋值</span>"
// outerText赋值后再获取值,并不是最新的值,还是原来的值。同outerHTML表现一样
console.log("outerHTML >>>",d_outer.outerHTML)
console.log("innerHTML >>>",d_outer.innerHTML)
console.log("outerText >>>",d_outer.outerText)
console.log("innerHTML >>>",d_outer.innerText)
console.log("textContent >>>",d_outer.textContent)

d_outer.outerText有兼容性,并不是W3C标准属性。

  • 赋值新内容会连自身元素也被替换。
  • 不会对内容中的标签符号进行转换,默认全为字符文本。
  • 重新取值仍然为内存中原来的值。

    除了第二点外,基本表现与outerHTML一致。

innerText赋值
d_outer.innerText = "<span>这是innerText的赋值</span>"
// innerText赋值后再获取值
console.log("outerHTML >>>",d_outer.outerHTML)
console.log("innerHTML >>>",d_outer.innerHTML)
console.log("outerText >>>",d_outer.outerText)
console.log("innerHTML >>>",d_outer.innerText)
console.log("textContent >>>",d_outer.textContent)

d_outer.innerText赋值新内容,仅对后代节点内容进行替换。同样不会对赋值内容中的标签符号进行转义,默认全为字符文本。

textContent赋值
d_outer.innerText = "<span>这是textContent的赋值</span>"
// textContent赋值后再获取值
console.log("outerHTML >>>",d_outer.outerHTML)
console.log("innerHTML >>>",d_outer.innerHTML)
console.log("outerText >>>",d_outer.outerText)
console.log("innerHTML >>>",d_outer.innerText)
console.log("textContent >>>",d_outer.textContent)

d_outer.outerText赋值新内容,仅对后代节点内容进行替换。同样不会对赋值内容中的标签符号进行转义,默认全为字符文本。同innerText赋值完全一致。

总结

vue-learning:12 - 2 - 区分:outerHTML - innerTHML - outerText - innerText - textContent的更多相关文章

  1. DOM中的outerHTML,innerHTML,outerText,innerText的区别

    --转自http://blog.163.com/yw_0721/blog/static/7164579720102932157759/ 简单的说innerHTML和outerHTML.innerTex ...

  2. (转)innerHTML、innerText和outerHTML、outerText的区别

    原文:http://walsh.iteye.com/blog/261966 innerHTML.innerText和outerHTML.outerText的区别          博客分类: CSS/ ...

  3. 测试开发技术:DOM中 innerHTML、innerText、outerHTML、outerText的区别

    测试开发技术:DOM中 innerHTML.innerText.outerHTML.outerText的区别   我们在做web自动化的过程中通过dom处理web页面元素,那么你就要了解innerHT ...

  4. innerHTML、innerText和outerHTML、outerText的区别

    区别描述如下: innerHTML 设置或获取位于对象起始和结束标签内的 HTML outerHTML 设置或获取对象及其内容的 HTML 形式 innerText 设置或获取位于对象起始和结束标签内 ...

  5. JS中innerHTML和innerText,outerHTML和outerText

      innerHTML 声明了元素含有的HTML文本,不包括元素本身的开始标记和结束标记 innerHTML是符合W3C标准的属性,而innerText只适用于IE浏览器(现在也适应chrome浏览器 ...

  6. Vue Learning Paths

    Vue Learning Paths Vue Expert refs https://vueschool.io/articles/vuejs-tutorials/exciting-new-featur ...

  7. outerHTML和outerText的赋值是异步的

    用JavaScript操作DOM时,经常有生成复杂HTML结构的需求.此时,通常不是用标准DOM接口(如createElement().setAttribute().append()等)来语句式地生成 ...

  8. innerHTML、innerText、outerHTML、outerText的区别

    我们在用JS/JQ 获取或设置元素内容的时候,通常是获取或设置指定元素之间的内容 <script> //JS document.getElementById('test').innerHT ...

  9. innerHTML,innerText,outerHTML,outerText,value浅析

    首先是一个例子: <div id= "aa">0<br/>0<span>11</span>22</div><inp ...

随机推荐

  1. 洛谷1014 Cantor表

      水题.随便搞搞就过了. //Serene #include<algorithm> #include<iostream> #include<cstring> #i ...

  2. JavaScript--淘宝图片切换

    css样式有点问题,但是主要是js逻辑: <!DOCTYPE html> <html> <head> <meta charset="utf-8&qu ...

  3. IDEA切换git分支

    查看当前所在分支 场景:在多人开发中,需要在主分支的基础上创建一些分支分配给小团队或个人去开发,然后小分支上的小功能开发完毕之后,再merge(合并)到主分支. 1.查看当前所在的分支 下图1.1中是 ...

  4. win10下Anaconda3配置环境变量

    有时候在win10安装好Anaconda3后,使用conda命令时依然会出现: C:\Users\dell\PycharmProjects\pytorch>conda list 'conda' ...

  5. aspcms安装所遇到的问题

     aspcms标签:http://biaoqian.iasp.com.cn/ 1.报错:An error occurred on the server when processing the URL. ...

  6. jQuery show hide方法 二级菜单

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  7. SDUT-1479_数据结构实验之栈与队列九:行编辑器

    数据结构实验之栈与队列九:行编辑器 Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 一个简单的行编辑程序的功能是:接受用 ...

  8. Alternating Direction Method of Multipliers -- ADMM

    前言: Alternating Direction Method of Multipliers(ADMM)算法并不是一个很新的算法,他只是整合许多不少经典优化思路,然后结合现代统计学习所遇到的问题,提 ...

  9. uda 4.C++面向对象编程

    Python vs C++ 对比课   在本课中,你将学习如何用 C++ 编写类.像以前的课程一样,你需要比较 Python 的编程方式和 C++ 中编程方式的不同. 我们直接看例子.下面是一个名为 ...

  10. linux下修改gcc编译器版本

    可以使用如下命令行来让 gcc 选择不同的 C++ 版本: g++ -std=c++11 main.cpp 在你的系统中,由于编译器或是编译器设定上的差别,操作也许有所不同.