当前位置: 代码迷 >> 综合 >> innerHtml/outerHtml/innerText/outerText/textContent比较
  详细解决方案

innerHtml/outerHtml/innerText/outerText/textContent比较

热度:5   发布时间:2024-01-05 04:41:56.0

 总纲

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

获取操作

//HTML代码:

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

//执行获取操作的结果:

test.innerHTML的值:“<span style="color:red">test1</span> test2 ”

text.outerHTML的值: “<div id="test"><span style="color:red">test1</span> test2</div>“

text.innerText与text.outerText的值:“test1 test2”( 没有HTML标签)

text.textContent的值: “test1 test2”(没有HTML标签)

 设置操作

//原始HTML代码:

<ul>         

    <li id="io">初期显示</li>    

</ul> 

//执行设置操作结果

1)io.innerHTML="<i><u>设置或获取位于对象起始和结束标签内的HTML.</u></i>";结果如下

<ul>    

     <liid="io"><i><u>设置或获取位于对象起始和结束标签内的HTML.</u></i></li>    

</ul>//页面不会显示HTML标签<i><u> 

2)io.outerHTML="<i><u>设置或获取对象及其内容的 HTML 形式.</u></i>";结果如下

<ul>    

    <i><u>设置或获取对象及其内容的HTML形式.</u></i>   

</ul>  //页面不会显示HTML标签<i><u>

4)io.innerText="<i><u>设置或获取位于对象起始和结束标签内的文本.</u></i>";结果如下

<ul>    

    <li id="io">"<i><u>设置或获取位于对象起始和结束标签内的文本.</u></i>"</li>    

</ul>  //页面会显示HTML标签<i><u>

5)io.outerText="<i><u>设置(包括标签)或获取(不包括标签)对象的文本.</u></i>";结果如下

<ul>    

    "<i><u>设置(包括标签)或获取(不包括标签)对象的文本.</u></i>" 

</ul>  //页面会显示HTML标签<i><u>

6)io.textContent="<i><u>设置或获取位于对象起始和结束标签内的文本.</u></i>",结果与io.innerText相同。


 兼容性问题

  • innerHTML是符合W3C标准的属性,所有主流浏览器几乎都支持;
  • outerHTML 最初是由 IE 浏览器实现的私有属性,W3C 的 HTML5 规范草案中也新加入了这个属性,目前,主流浏览器中,只有 Firefox 不支持 outerHTML属性。;
  • innerText 和outerText最初是由 IE4.0 浏览器实现的私有属性,现有 W3C 标准中的没有定义这个属性。虽然不是标准属性,但是大多浏览器都对它提供了支持,目前主流浏览器中只有 Firefox 不支持该属性。
  • textContent是DOM3级规定的一个属性,所以是符合W3C标准的属性。目前得到了FireFox、safari、opera和Chrome的支持,但IE不支持。虽然Firefox不支持innerText属性,但其可以用textContent属性代替。