JavaScript DOM 5 - HTML元素的内容

一个HTML元素的内容到底是指什么?特别是对于那些有子节点的HTML元素。
1: 首先来看一下可以获取HTML元素的内容的方式有哪些:

1: element.innerHTML

2: element.outerHTML

3: element.textContent

4: element.innerText

我们这么一段HTML代码:

<ul class='bookList'>
    <li class='bookItem'>book 1</li>
    <li class='bookItem'>book 2</li>
</ul> 

我们对这个'<ul>'元素运用以上四个不同的属性得出的结果有什么不同:

图片描述

2: 四个属性的不同点主要表现在:

1: innerHTML和outerHTML都返回一段HTML
    1: innerHTML返回的HTML不包含这个元素本身的标签,而outerHTML则包含
    
2:textContent和innerText返回纯文本
    1: textContent和innerText都是把当前节点的所有后代的纯文本递归地拼接到一起
    2: 如果此元素的childNodes[0]和childNodes[childNodes.length -1]是空格的话,textContent是会包括的,但是innerText不包括

3: script标签的特殊性

内联的<script>元素,如果把它的type设置为非‘text/javascript’例如:type="text/x-custom-data",那么javaScript的解析器就会忽略这段脚本,但是它依然会存在于HTML中。对于这种类型的<script>,textContent和innerText返回的结果也不同。假如我们有这样的一段HTML代码:

<ul class='bookList'>
    <li class='bookItem'>book 1</li>
    <li class='bookItem'>book 2</li>
    <script type="text/x-custom-data">
          inside script
      </script>
</ul> 

我们对'<ul>'分别取textContent和innerText,得到的结果如下:

图片描述

textContent还是会把<script>里面的内容返回来,但是innerText则不会。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值