innerHTML innerText的使用和区别

document对象中有innerHTML、innerText这两个属性,都是获取document对象文本内容,但使用起来还是有区别的;

1) innerHTML设置或获取标签所包含的HTML+文本信息(从标签起始位置到终止位置全部内容,包括HTML标签,但不包括自身)

2) outerHTML设置或获取标签自身及其所包含的HTML+文本信息(包括自身)

3) innerText设置或获取标签所包含的文本信息(从标签起始位置到终止位置的内容,去除HTML标签,但不包括自身)

4) outerText设置或获取标签自身及其所包含的文本信息(包括自身)

innerText和outerText在获取的时候是相同效果,但在设置时,innerText仅设置标签所包含的文本,而outerText设置包含包括标签自身在内的文本。

示例代码:

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

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

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

alert(content.outerHTML)则弹出:"<p id="p1">hello world</p>"

示例2

通过IE浏览器打开,弹出内容为"<p id="p1">hello world</p>"和"hello world"

通过Firefox浏览器打开,弹出内容为"<p id="p1">hello world</p>"和"undefined"

通过chrome浏览器打开,弹出的内容为"<p id="p1">hello world</p>"和"hello world"

alert(content.outerHTML)则弹出:"<div id="d1"><p id="p1">hello world</p></div>"

综上:innerHTML所有浏览器都支持,innerText是IE浏览器支持的,Firefox浏览器不支持。

不同之处:

1) innerHTML、outerHTML在设置标签之间的内容时,包含的HTML会被解析;而innerText、outerText则不会;

2) innerHTML、innerText仅设置标签之间的文本,而outerHTML、outerText设置包含自身标签在内文本

总结说明

  innerHTML是符合W3C标准的属性,而innerText只适用于IE浏览器(现在也适应chrome浏览器),因此,

尽可能地去使用 innerHTML,而少用innerText,如果要输出不含HTML标签的内容,可以使用innerHTML取得包含HTML标签的内容后,

再用正则表达式去除HTML标签,下面是一个简单的符合W3C标准的示例:

<html>
    <head><title>innerHTML</title></head>
    <body>
        <div id="d1"><p id="p1">hello world </p></div>
        <script>
            var content = document.getElementById("p1");
            alert(content.innerHTML.replace(/& lt;.+?>/gim,‘‘));
        </script>
    </body>
</html>

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

-------------------------------------------------------------------------------------------------------------------------------------------------------------

https://blog.csdn.net/qq_29924041/article/details/78483796

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4   <meta charset="UTF-8">
 5   <title>Title</title>
 6   <meta charset="UTF-8"><!--申明当前网页的编码集UTF-8-->
 7   <meta name="Generator" content="EditPlus®">   <!--编辑器的名称-->
 8   <meta name="Author" content="作者是谁">
 9   <meta name="Keywords" content="关键词">
10   <meta name="Description" content="描述和简介">
11   <style type="text/css">
12         body,dl,dd,dt,p,h1,h2,h3,h4,h5,h6{ margin: 0;}
13         ul,ol{margin: 0; list-style: none; padding: 0;}
14         a{ text-decoration: none; }
15         *{ margin: 0; padding: 0; }
16         .fl_l{float: left}
17         .clearfix:after{clear: both;content: "";display: block}
18     .main{width: 800px;margin: 40px auto;box-shadow: 0 0 10px 0 deeppink}
19     p{width: 200px;height: 200px;box-shadow: 0 0 10px 0 blue;margin: 10px}
20
21   </style>
22 </head>
23 <body>
24   <div class="main">
25     <div class="compare1 clearfix" >
26       <p class="fl_l" id="innerHTML_1">innerHTML_1</p>
27       <p class="fl_l" id="innerText_1">innerText_1</p>
28     </div>
29     <div class="compare2 clearfix">
30       <p class="fl_l" id="innerHTML_2">innerHTML_2</p>
31       <p class="fl_l" id="innerText_2">innerText_2</p>
32     </div>
33   </div>
34   <script>
35     var innerHTML_1 = document.getElementById("innerHTML_1");
36     var innerText_1 = document.getElementById("innerText_1");
37     var innerHTML_2 = document.getElementById("innerHTML_2");
38     var innerText_2 = document.getElementById("innerText_2");
39
40     innerHTML_1.onmouseover = function () {
41         this.innerHTML = "innerHTML_1 function";
42     }
43     innerText_1.onmouseover = function () {
44         this.innerText = "innerText_1 function";
45     }
46     innerHTML_2.onmouseover  =function () {
47         this.innerHTML = "<span style=‘color: red‘>innerHTML_2 function<span>";
48     }
49     innerText_2.onmouseover = function () {
50         this.innerText = "<span style=‘color: red‘>innerHTML_2 function<p>";
51     }
52   </script>
53 </body>
54 </html>

从上面可以看到,如果从纯文本的角度来理解的话,innerHTML和innerText都是一样的,因为在添加字符串这样数据的时候,是没有任何区别的,
但是如果从标签的角度来进行加载的话,innerHTML是可以去进行标签的解析的,也就是可以动态的再去加载标签,但是innerText确是以文本的形式进行显示的

这也就是它们主要的区别,虽然都是可以在标签中添加内容,但是不同的应用场景下,使用的标签页也是需要不同的

原文地址:https://www.cnblogs.com/yuer20180726/p/11135575.html

时间: 2024-10-08 16:57:03

innerHTML innerText的使用和区别的相关文章

javaScript中innerHTML,innerText,outerHTML,outerText的区别

开头说下innerText和outerText只在chrome浏览器中有效 定义和用法 innerHTML 属性设置或返回表格行的开始和结束标签之间的 HTML,包括标签. 来看代码 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=d

innerHTML,innerText,outHTML的用法及区别详解

innerHTML,innerText,outHTML的用法及区别,今天就详细的解说并且带有实例说明.大家一看就明白,进入正题,接下来我们用下面的这段代码做测试 <div id="tianzi"> <span style="color:red">www.seostudying.com</span> </div> 1.tianzi.innerText 它得到的是<div></div>标签中的文本节

JS中innerHTML 和innerText和value的区别

(1)innerHTML 和innerText和value的区别: innerHTML innerText是对非表单元素进行操作的. value是对表单元素进行操作的. (2)innerHTML 和innerText的区别 当innerHTML赋值时,能对内容里面的标记元素(<h1></h1>)进行处理,展现出效果 .一般多运用于赋值 当innerHTML 取值时,输出的结果也含有标记元素 当innerText赋值时,输入什么内容就显示什么内容,不对标记元素进行处理. 当inner

js中的innerHTML,innerText,value的区别

首先先说一下 我自己认为的 innerHTML,innerText,value的区别 innerHTML 是在控件中加html代码 就是设置一个元素里面的HTML eg: <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> <

innerHTML和outerHTML有什么区别

一.区别:1)innerHTML: 从对象的起始位置到终止位置的全部内容,不包括Html标签.2)outerHTML: 除了包含innerHTML的全部内容外, 还包含对象标签本身. 二.例子1:<div id="test"> <span style="color:red">test1</span> test2 </div>1)innerHTML的值是“<span style="color:red&qu

javascript innerHTML、outerHTML、innerText、outerText的区别

1.功能讲解: innerHTML 设置或获取位于对象起始和结束标签内的 HTML outerHTML 设置或获取对象及其内容的 HTML 形式 innerText 设置(包括标签)或获取(不包括标签)位于对象起始和结束标签内的文本 outerText 设置(包括标签)或获取(不包括标签)对象的文本 2.示例 1 <html> 2 <head> 3 <meta http-equiv="Content-Type" content="text/htm

innerHTML、outerHTML、innerText、outerText的区别及兼容性问题

一.区别描述如下:(书上形式的说法) innerHTML设置或获取位于对象起始和结束标签内的 HTML outerHTML设置或获取对象及其内容的 HTML 形式 innerText  设置或获取位于对象起始和结束标签内的文本 outerText  设置(包括标签)或获取(不包括标签)对象的文本 https://blog.csdn.net/html5_/article/details/23619103 原文地址:https://www.cnblogs.com/weblff/p/9256841.h

JavaScript中innerHTML与innerText,createTextNode的区别

innerHTML和innerText 它们都会把元素内内容替换掉,区别在于: innerHTML 会把替换内容里的 HTML 标记解释执行. innerText 会把替换内容里的 HTML 标记原样输出而不执行. 例如有如下代码: var content = "<b>这是对innerHTML和innerText的测试</b>" ; // 假设 e 为网页内某元素 e.innerHTML = content ; // 显示结果为 这是对innerHTML和inn

javascript innerHTML、outerHTML、innerText、outerText的区别(转)

1.功能讲解: innerHTML 设置或获取位于对象起始和结束标签内的 HTML outerHTML 设置或获取对象及其内容的 HTML 形式 innerText 设置或获取位于对象起始和结束标签内的文本 outerText 设置(包括标签)或获取(不包括标签)对象的文本 2.示例 <html> <head> <title>Demo</title> <style><!-- body {font-family:"宋体";