document 对象中有innerHTML和innerText 两个属性, 这两个属性都是获取document对象的文本内容的,这两个属性间有哪些区别呢?通过几个例子来看一下。

示例1

  1. <html>
  2. <head><title>innerHTML</title></head>
  3. <body>
  4. <p id="p1">hello world </p>
  5. <script>
  6. var content = document.getElementById("p1");
  7. alert(content.innerHTML);
  8. alert(content.innerText)
  9. </script>
  10. </body>
  11. </html>

  通过IE浏览器打开,弹出内容为 "hello world" 和 "hello world"

  通过 Firefox 浏览器打开,弹出内容为 "hello world" 和 "undefined"

  通过 chrome 浏览器打开,弹出内容为 "hello world" 和 "hello world"

示例2

  1. <html>
  2. <head><title>innerHTML</title></head>
  3. <body>
  4. <div id="d1"><p id="p1">hello world </p></div>
  5. <script>
  6. var content = document.getElementById("d1");
  7. alert(content.innerHTML);
  8. alert(content.innerText)
  9. </script>
  10. </body>
  11. </html>

  通过IE浏览器打开,弹出内容为 和 通过 Firefox 浏览器打开,弹出内容为 和 通过 chrome 浏览器打开,弹出内容为 和

  通过上面两个示例,可以看出:

    innerHTML指的是从对象的起始位置到终止位置的全部内容,包括Html标签
    innerText   指的是从起始位置到终止位置的内容,但它去除Html标签
  同时,innerHTML 是所有浏览器都支持的,innerText
是IE浏览器和chrome 浏览器支持的,Firefox浏览器不支持。其实,innerHTML   是W3C 组织规定的属性;而innerText
属性是IE浏览器自己的属性,不过后来的浏览器部分实现这个属性罢了。

outerHTML

    说到innerHTML,顺便说一下跟innerHTML相对的outerHTML属性。

    继续看上面的代码,将alert(content.innerText) 修改为 alert(content.outerHTML)

    通过浏览器可以看到弹出框为<p id="p1">hello world </p>

      和 <divid="d1"><p id="p1">hello world</p></div>

  outerHTML指的是除了包含innerHTML的全部内容外, 还包含对象标签本身

总结说明

  innerHTML是符合W3C标准的
属性,而innerText只适用于IE浏览器(现在也适应chrome浏览器),因此,尽可能地去使用
innerHTML,而少用innerText,如果要输出不含HTML标签的内容,可以使用innerHTML取得包含HTML标签的内容后,再用正则
表达式去除HTML标签,下面是一个简单的符合W3C标准的示例:

  1. <html>
  2. <head><title>innerHTML</title></head>
  3. <body>
  4. <div id="d1"><p id="p1">hello world </p></div>
  5. <script>
  6. var content = document.getElementById("p1");
  7. alert(content.innerHTML.replace(/& lt;.+?>/gim,''));
  8. </script>
  9. </body>
  10. </html>

弹出的为去掉了html标签之后的内容,这是个在所有浏览器均可使用的方法。

innerHTML和innerText的更多相关文章

  1. innerHTML与innerText的异同

    在一道面试题中看到的. 1.功能讲解: innerHTML 设置或获取位于对象起始和结束标签内的 HTML outerHTML 设置或获取对象及其内容的 HTML 形式 innerText 设置或获取 ...

  2. JS中innerHTML,innerText,value

    一·.JS初学者易混淆的问题:innerHTML,innerText,value(他们和JQ的区别:JS→value,JQ→value()) 1.getElementById("a" ...

  3. JS魔法堂:被玩坏的innerHTML、innerText、textContent和value属性

    一.前言 由于innerText并非W3C标准属性,因此我们无法在FireFox中使用它(修正:FF45+已经支持innerText属性),一般情况下我们可以使用textContent来代替,但它两者 ...

  4. JS中innerHTML 和innerText和value的区别

    (1)innerHTML 和innerText和value的区别: innerHTML innerText是对非表单元素进行操作的. value是对表单元素进行操作的. (2)innerHTML 和i ...

  5. (转)JS中innerHTML,innerText,value

    原文:http://holysonll.blog.163.com/blog/static/21413909320134111054352/ JS中innerHTML,innerText,value 2 ...

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

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

  7. innerHTML与innerText的PK

    一.innerText属性用来定义对象所要输出的文本,在本例中innerText把对象it中的文本"您喜欢看微微一笑很倾城吗?"变成了"超级喜欢!"(语句it. ...

  8. textContent、innerHTML、innerText、outerText、outerHTML、nodeValue使用场景和区别

    今天要讲的这些属性都可以用来获取某个元素的内容,你可能会觉得不可思议,或是说上一句"丧心病狂"也.但当你看完以下内容后,会发现除outerText无用外,其他的都有各自的使用场景, ...

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

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

随机推荐

  1. "position:relative"在IE中的Bug

    当子元素过高导致父元素出现滚动条时,它并不会像预期的那样呆在父元素里,而是浮在父元素之上,并且位置不随滚动条的移动而改变.根源就是子元素的"position:relative".目 ...

  2. 禁止选择文本和禁用右键 v2.0

    禁止鼠标右键(注:在火狐浏览器没有起到效果作用) <script> function stop() { return false }; document.oncontextmenu = s ...

  3. PHP-Wamp集成包安装教程

    在Windows平台上搭建PHP的开发环境可以下载WAMP(Windows.Apache.MySQL.PHP的首字母缩写)集成化安装包.这样就不需要单独安装Apache.MySQL和PHP了. 这款软 ...

  4. [转载]如何重装Grub,使其可以引导双系统

    引言: GRUB是一个多重操作系统的启动管理器.用来引导不同的系统,如windows,Linux.一般来说要先装Windows,后装Linux,这样grub才能生效(grub存在于linux的安装中) ...

  5. easyui之combotree

    这几天时间比较空闲的我把easyui中比较难的控件回顾一遍 这次的总结是easyui中的combotree easyui的中文文档上说:combotree结合选择控制和下拉树,类似于combobox只 ...

  6. http协议请求规则与dotNet的解析

    请求方法URI协议/版本 请求的第一行是"方法URL议/版本":GET/sample.jsp HTTP/1.1 以上代码中"GET"代表请求方法,"/ ...

  7. 理解Python的迭代器

    首先,廖雪峰老师的教程中解释了迭代器和生成器,这篇文章只是补充和我个人的总结. 什么是迭代 可以直接作用于for循环的对象统称为可迭代对象(Iterable). 可以被next()函数调用并不断返回下 ...

  8. 制作PPT时,可能这些小习惯你需要注意

  9. [转贴]从零开始学C++之STL(二):实现一个简单容器模板类Vec(模仿VC6.0 中 vector 的实现、vector 的容量capacity 增长问题)

    首先,vector 在VC 2008 中的实现比较复杂,虽然vector 的声明跟VC6.0 是一致的,如下:  C++ Code  1 2   template < class _Ty, cl ...

  10. ANDROID_MARS学习笔记_S04_002_用AsyncTask实现异步操作

    一.简介 二.代码1.xml(1)activity_main.xml <?xml version="1.0" encoding="utf-8"?> ...