C#爬虫:innerHTML和innerText的使用和区别

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

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

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

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

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

 

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

示例代码:

C#爬虫:innerHTML和innerText的使用和区别_第1张图片

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

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

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

alert(content.outerHTML)则弹出:"

hello world

"

示例2

 

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

hello world

"和"hello world"

通过Firefox浏览器打开,弹出内容为"

hello world

"和"undefined"

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

hello world

"和"hello world"

alert(content.outerHTML)则弹出:"

hello world

"

综上: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标准的示例:


    innerHTML
    
        

hello world

 

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

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

更多见该博客:https://blog.csdn.net/qq_29924041/article/details/78483796




  
  Title
  
     
         
  
  
  


  

innerHTML_1

innerText_1

innerHTML_2

innerText_2

C#爬虫:innerHTML和innerText的使用和区别_第2张图片

从上面可以看到,如果从纯文本的角度来理解的话,innerHTML和innerText都是一样的,因为在添加字符串这样数据的时候,是没有任何区别的,但是如果从标签的角度来进行加载的话,innerHTML是可以去进行标签的解析的,也就是可以动态的再去加载标签,但是innerText确是以文本的形式进行显示的,这也就是它们主要的区别,虽然都是可以在标签中添加内容,但是不同的应用场景下,使用的标签页也是需要不同的。

你可能感兴趣的:(#,C#网络)