前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >JavaScript 学习-33.HTML DOM 获取和修改文本节点

JavaScript 学习-33.HTML DOM 获取和修改文本节点

作者头像
上海-悠悠
发布2022-05-30 15:12:12
1.5K0
发布2022-05-30 15:12:12
举报

前言

textContent、innerText 和 innerHTML 三个方法的使用场景和区别

textContent 和 innerText

IE 浏览器最早引入了innerText, 虽然是IE浏览器私有属性,但是其他很多浏览器也支持了。提到IE,必然是坑! 火狐浏览器把innerText换成了textContent , 但其他浏览器上面,也是可以使用textContent。

使用区别: textContent 用来设置或获取某个元素内所有文本内容,包含子元素内容,隐藏元素也能获取。 innerText 的返回值会被格式化 ,但是textContent的返回值不会被格式化 innerText会把页面里的空标签当作换行处理, ( 一个空标签是一行 , 连续的多个空标签也是一行) ,但是textContent就返回一行文本(有子标签才会返回多行文本) . 最重要的区别 innerText返回的值, 依赖于页面的显示. textContent依赖于代码的内容

示例:获取p标签文本内容

代码语言:javascript
复制
<div id="demo">
    <p id="p1">这是文本内容</p>
    hello world!
</div>
<script>
    // p标签
    p1 = document.getElementById('p1');
    console.log("这是textContent:\n" + p1.textContent);
    console.log("这是innerText:\n" + p1.innerText);
</script>

获取div标签文本内容(包含子元素文本内容)

代码语言:javascript
复制
<div id="demo">
    <p id="p1">这是文本内容</p>
    hello world!
</div>
<script>
    // p标签
    div = document.getElementById('demo');
    console.log("这是textContent:\n" + div.textContent);
    console.log("这是innerText:\n" + div.innerText);
</script>

innerText 无法获取子元素p标签隐藏元素, innerText依赖于页面的显示. textContent依赖于代码的内容

代码语言:javascript
复制
<div id="demo">
    <p id="p1" style="display:none;">这是文本内容</p>
    hello world!
</div>
<script>
    // p标签
    div = document.getElementById('demo');
    console.log("这是textContent:\n" + div.textContent);
    console.log("这是innerText:\n" + div.innerText);
</script>

但是直接定位p标签,又能获取子元素文本

代码语言:javascript
复制
<div id="demo">
    <p id="p1" style="display:none;">这是文本内容</p>
    hello world!
</div>
<script>
    // p标签
    p = document.getElementById('p1');
    console.log("这是textContent:\n" + p.textContent);
    console.log("这是innerText:\n" + p.innerText);
</script>

innerText 和 innerHTML

获取内容时 innerHTML 从对象的起始位置到终止位置的全部内容,还包括 HTML 标签。 innerText 会去掉标签的内容。

innerText和innerHTML 获取内容示例

代码语言:javascript
复制
<div id="demo">
    <p id="p1"><strong>这是文本内容</strong></p>
    hello world!
</div>
<script>
    // 获取文本
    p = document.getElementById('p1');
    console.log(p.innerText);  // 这是文本内容
    console.log(p.innerHTML);  // <strong>这是文本内容</strong>
</script>

innerText和innerHTML 有换行和空格示例

代码语言:javascript
复制
<div>
    <p id="p2">hello       world!
        你好世界!
    </p>
</div>
<script>
    // 获取文本
    p = document.getElementById('p2');
    console.log(p.innerText);  // hello world! 你好世界!
    console.log(p.innerHTML);  //
</script>

获取div标签内容

代码语言:javascript
复制
<div id="demo">
    <p id="p1"><strong>这是文本内容</strong></p>
    hello world!
</div>
<script>
    // 获取文本
    div = document.getElementById('demo');
    console.log(div.innerText);  //
    console.log(div.innerHTML);  //
</script>

div.innerHTML 获取的是div下的全部html代码内容 div.innerText 仅仅只获取文本内容

innerText和innerHTML设置内容时:

  • innerText不会识别html样式
  • innerHTML会识别html样式

设置内容示例

代码语言:javascript
复制
<div>
    <p id="p3"></p>
    <p id="p4"></p>
</div>
<script>
    // 设置文本
    p3 = document.getElementById('p3');
    p3.innerText = '<strong>hello world</strong>'
    p4 = document.getElementById('p4');
    p4.innerHTML = '<strong>hello world</strong>'
</script>

innerText设置标签内容,是没有标签的效果的 innerHTML设置新的html标签内容,是有标签效果的

2022年第 11 期《python接口web自动化+测试开发》课程,6月5号开学!

《JMeter 性能测试实战》课程6月15号开学

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-05-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 从零开始学自动化测试 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • textContent 和 innerText
  • innerText 和 innerHTML
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档