浏览器兼容性测试小记-DOM篇(二)

发表于:2014-5-29 11:25

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:木的树    来源:51Testing软件测试网采编

  1、DOM中的所有节点都继承自Node类型,IE9之前将DOM节点作为COM对象来实现;每个DOM节点都有一个nodeType属性来表明节点类型,总共有12个类型:
1 Node.ELEMENT_NODE
2 Node.ATTRIBUTE_NODE
3 Node.TEXT_NODE
4 Node.CDATA_SECTION_NODE
5 Node.ENTITY_REFERENCE_NODE
6 Node.ENTITY_NODE
7 Node.PROCESSING_INSTRUCTION_NODE
8 Node.COMMENT_NODE
9 Node.DOCUMENT_NODE
10 Node.DOCUMENT_TYPE_NODE
11 Node.DOCUMENT_FRAGMENT_NODE
12 Node.NOTATION_NODE
  其中,1、2、3、9、10、11最常用,要确定某种元素类型可以使用以下方法:
  elementNode.nodeType === Node.ELEMENT_NODE // 非IE,IE9以下无法访问Node类型
  elementNode.nodeType === 1 // 所有浏览器
  2、以下方法返回的都是原生的NodeList对象
  1 elementNode.childNodes
  2 document.getElementsByName()
  3 document.getElementsByClassName()
  4 document.getElementsByTagName() //返回HtmlCollection对象,与NodeList类似,多了一个namedItem('name')方法
  5 document.getElementsByTagNameNS()
  NodeList是一种类数组对象,有length属性,但并不是Array的实例,访问NodeList中的节点对象可使用item方法或[]语法。每次访问NodeList对象实际上都是重新进行一次查询,因此通常可以将NodeList转化为数组对象。
1     function nl2array(nodeList){
2        var array = null;
3        try{
4          array = Array.prototype.slice.call(nodeList, 0);// FF
5        }catch(){
6          array = [];
7          for (var i = 0, len = nodeList.length; i < len; i++){
8             array.push(nodeList[i]);
9          }
10        }
11        return array;
12      }
31/3123>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号