js关于document.getElementsByTagName("*")在ie及主流浏览器中的返回值问题,ie9以下返回注释节点

2017-11-7 22:37:44 4,068 views
<!DOCTYPE html>
<html id="html">
  <head>
    <meta charset="UTF-8">
    <title></title>
  </head>
  <body>
    <!--注释节点-->
    <!--注释节点-->
    <ul>
      <li id="test">test1</li>
      <li>test3</li>
      <li>test4</li>
    </ul>
    <script type="text/javascript">
var all=document.getElementsByTagName("*");
var len=all.length;
for (var i=0;i<len;i++) {
  console.log(all[i]);
}
  </script>
  </body>
</html>

chrome输出返回

ff输出返回


ff输出返回
 
在ie9+的输出结果为

[object HTMLHtmlElement]
[object HTMLHeadElement]
[object HTMLMetaElement]
[object HTMLTitleElement]
[object HTMLBodyElement]
[object HTMLUListElement]
[object HTMLLIElement]
[object HTMLLIElement]
[object HTMLLIElement]
[object HTMLScriptElement]

在ie8,输出为,返回了注释节点

[object HTMLCommentElement]
[object HTMLHtmlElement]
[object HTMLHeadElement]
[object HTMLTitleElement]
[object HTMLMetaElement]
[object HTMLBodyElement]
[object HTMLCommentElement]    //Comment为注释节点
[object HTMLCommentElement]   //Comment为注释节点
[object HTMLUListElement]
[object HTMLLIElement]
[object HTMLLIElement]
[object HTMLLIElement]
[object HTMLScriptElement]

在ie7中输出为,返回了注释节点

[object]
[object]
[object]
[object]
[object]
[object]
[object]
[object]
[object]
[object]
[object]
[object]
[object]

从上看出在ie9以下,ie将注释也实现为节点,在ff和chrome中则返回具体的html结构
 

0

分享到微信朋友圈

打开微信,点击底部的“发现”,
使用“扫一扫”即可将网页分享至朋友圈。