innerHTML、outerHTML、innerText、outerText的区别

今天面试又看到这样的题了,总结下供大家参考:


概念性问题
innerHTML 设置或获取位于对象起始和结束标签内的 HTML
outerHTML 设置或获取对象及其内容的 HTML 形式
innerText 设置或获取位于对象起始和结束标签内的文本
outerText 设置(包括标签)或获取(不包括标签)对象的文本


操作真想分析
<ul>   
  <li id="io">初期显示</li>   
</ul>

io.innerHTML="<i><u>设置或获取位于对象起始和结束标签内的 HTML.</u></i>";   (以下为执行后结果)
<ul>   
  <li id="io"><i><u>设置或获取位于对象起始和结束标签内的 HTML.</u></i></li>   
</ul>
其中的<i><u>标签将会被解析(页面不会显示<i><u>)

io.outerHTML="<i><u>设置或获取对象及其内容的 HTML 形式.</u></i>";   (以下为执行后结果)
<ul>   
  <i><u>设置或获取对象及其内容的 HTML 形式.</u></i>  
</ul>
其中的<i><u>标签将会被解析(页面不会显示<i><u>)

io.innerText="<i><u>设置或获取位于对象起始和结束标签内的文本.</u></i>";   (以下为执行后结果)
<ul>   
  <li id="io">"<i><u>设置或获取位于对象起始和结束标签内的文本.</u></i>"</li>   
</ul>
其中的<i><u>标签将不会被解析(页面会显示<i><u>)

io.outerText="<i><u>设置(包括标签)或获取(不包括标签)对象的文本.</u></i>";(以下为执行后结果)
<ul>   
  "<i><u>设置(包括标签)或获取(不包括标签)对象的文本.</u></i>"
</ul>
其中的<i><u>标签将不会被解析(页面会显示<i><u>)

以上使用不同点总结
innerHTML与outerHTML在设置对象的内容时包含的HTML会被解析,而innerText与outerText则不会。 
innerHTML与innerText仅设置标签内的文本,而outerHTML与outerText设置包括标签在内的文本。

注意:
innerHTML是符合W3C标准的属性,而innerText只适用于IE浏览器 。
  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: innerHTMLinnerText都是JavaScript中常用的属性,用于获取或设置HTML元素的内容。它们的区别在于: 1. innerHTML获取或设置的是元素的HTML内容,包括标签和文本内容,而innerText只获取或设置元素的文本内容,不包括标签。 2. innerHTML可以用于修改元素的HTML结构,包括添加、删除、替换元素和属性等操作,而innerText只能修改元素的文本内容。 3. innerHTML会触发浏览器的重绘和重排,因为它会改变元素的结构和样式,而innerText只会改变元素的文本内容,不会影响元素的结构和样式。 因此,在使用innerHTMLinnerText时,需要根据具体的需求选择合适的属性。如果需要修改元素的HTML结构,应该使用innerHTML;如果只需要修改元素的文本内容,应该使用innerText。 ### 回答2: innerHTMLinnerText是JavaScript中常用的两个属性,都用于操作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元素的内容属性。但是需要注意的是,它们之间有一些不同之处,具体使用要根据实际情况确定。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值