js中innerHTML与innerText的用法与区别

转载自:http://www.phpweblog.net/kiyone/archive/2007/05/17/1206.aspx

js中innerHTML与innerText的用法与区别

用法:

<div id="test">
   <span style="color:red">test1</span> test2
</div>

在JS中可以使用:

test.innerHTML:

  也就是从对象的起始位置到终止位置的全部内容,包括Html标签。

  上例中的test.innerHTML的值也就是“<span style="color:red">test1</span> test2 ”。

test.innerText: 

  从起始位置到终止位置的内容, 但它去除Html标签 

  上例中的text.innerTest的值也就是“test1 test2”, 其中span标签去除了。

test.outerHTML:

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

  上例中的text.outerHTML的值也就是<div id="test"><span style="color:red">test1</span> test2</div>


完整示例:

<div id="test">
   <span style="color:red">test1</span> test2
</div>

<a href="javascript:alert(test.innerHTML)">innerHTML内容</a>
<a href="javascript:alert(test.innerText)">inerHTML内容</a>
<a href="javascript:alert(test.outerHTML)">outerHTML内容</a>

特别说明:

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

<a href="javascript:alert(document.getElementById('test').innerHTML.replace(/<.+?>/gim,''))">无HTML,符合W3C标准</a>

_________________________________________________________________________________________________________

<html>
<head></head>
<frameset frameborder="yes" frameborder="1" rows="40%,*">
<frame name="top" src="1.html">
<frame name="bottom" src="2.html">
</frameset>
</html>

<html>
<head>
<script language="javascript">
function init()
{    
    var aaa = parent.window.frames[0].document.body.innerHTML; 
    alert(aaa);
}
</script>
</head>
<body>
<p align="center">nothing</p>
<p align="center"><input type="button" οnclick="init()"; value="click"></p>
</body>
</html>

<html>
<center>百度 谷歌 必应</center>
</html>


  • 10
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: innerHTMLinnerText都是JavaScript常用的属性,用于获取或设置HTML元素的内容。它们的区别在于: 1. innerHTML获取或设置的是元素的HTML内容,包括标签和文本内容,而innerText只获取或设置元素的文本内容,不包括标签。 2. innerHTML可以用于修改元素的HTML结构,包括添加、删除、替换元素和属性等操作,而innerText只能修改元素的文本内容。 3. innerHTML会触发浏览器的重绘和重排,因为它会改变元素的结构和样式,而innerText只会改变元素的文本内容,不会影响元素的结构和样式。 因此,在使用innerHTMLinnerText时,需要根据具体的需求选择合适的属性。如果需要修改元素的HTML结构,应该使用innerHTML;如果只需要修改元素的文本内容,应该使用innerText。 ### 回答2: innerHTMLinnerTextJavaScript常用的两个属性,都用于操作HTML元素的文本内容。但是两者有着不同的区别。 首先,innerHTML是元素的一个属性,它返回元素的HTML内容,包括HTML标签、文本和属性。它可以修改元素的HTML内容,允许插入新的HTML元素或者改变元素的样式和属性。 例如,我们可以使用innerHTML将一个段落的文本内容替换成一个新的段落标签,这个新的标签可以拥有不同的颜色、字体和文本内容。 而innerText是元素的另一个属性,返回元素的纯文本内容,没有包含任何HTML标签。与innerHTML不同,innerText不能修改HTML结构,因此它通常用于操作那些只包含文本内容的元素。 此外,innerHTML的返回结果可能会包含一些浏览器自动在HTML添加的节点(例如空格或换行符),这些节点在innerText是不会被包含的。 在使用innerHTMLinnerText时还需要注意安全问题。由于innerHTML可以插入任意的HTML代码,因此会存在一定的安全风险,可能会受到XSS攻击。而innerText没有这个问题,因为它只能处理纯文本内容。 综上所述,innerHTMLinnerText有着不同的用途和特点。我们应该根据需要选择合适的方法来操作HTML元素的文本内容,同时注意相关的安全问题。 ### 回答3: innerHTMLinnerText是两个常用的Web开发术语。它们都用于处理HTML元素的内容属性,但是它们有几个不同之处。 innerHTML是一个属性,它表示某个元素的HTML内容。这个属性可以被读、写和修改,允许我们在网页动态地更新和改变HTML内容。这样的话,我们就可以通过编程来更新网页的内容,而无需修改HTML文件本身。innerHTML可以引用其他元素或属性,例如文本,图像,链接,样式和脚本。innerHTML属性非常强大,它可以轻松地创建动态的HTML内容,大大简化了Web开发的工作流程。 然而,innerText是表示元素的所有文本内容,但不包括HTML标签。如果一个元素包含嵌套的标签,例如链接、段落或表格,则innerText只返回纯文本,不返回标签。跟innerHTML不同的是,innerText只能被读取,因此不能用于更改HTML内容。它通常用于获取网页的文本内容而不包括HTML标记。 在实际应用,如果需要动态更新网页的内容,则应使用innerHTML,它可以轻松地修改网页的结构和布局。然而,如果只需要获取网页的文本内容,而不需要HTML标记,则应使用innerText,因为它只返回纯文本内容,不包含标签和样式。 总之,innerHTMLinnerText是两个常用的Web开发术语,它们都用于处理HTML元素的内容属性。但是需要注意的是,它们之间有一些不同之处,具体使用要根据实际情况确定。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值