WEB开发网
开发学院网页设计JavaScript JavaScript DOM学习第四章:getElementByTagNames... 阅读

JavaScript DOM学习第四章:getElementByTagNames

 2010-03-30 00:00:00 来源:WEB开发网   
核心提示: 解释1functiongetElementsByTagNames(list,obj)2{3if(!obj)varobj=document;首先定义开始元素obj,如果没有给出,JavaScript DOM学习第四章:getElementByTagNames(2),那么默认就是document,1

解释

1 function getElementsByTagNames(list,obj)
2 {
3     if (!obj) var obj = document;

首先定义开始元素obj,如果没有给出,那么默认就是document。

1 var tagNames = list.split(',');
2 var resultArray = new Array();

将这些tag名称以逗号分割。用一个数组来保存结果。

1 for (var i=0;i<tagNames.length;i++) {
2     var tags = obj.getElementsByTagName(tagNames[i]);
3     for (var j=0;j<tags.length;j++) {
4         resultArray.push(tags[j]);
5     }
6 }

现在我们遍历所有的tag名称,就用最简单的getElementByTagName()方法,然后把结果传入resultArray。这里的一个要点是,因为getElementByTagName返回的是节点列表,所以我就不能使用array.concat()来建立新的数组。把元素一个一个的压入是我能找到的最好的办法。

我们得到了一个所需的tag名称的元素的指针数组存储在resultArray中,但是这些元素还是按照我们所给的tag的顺序排列的。我们需要再排个序。

1 var testNode = resultArray[0];

现在我们开始排序。我们需要知道浏览器是否支持sourceIndex或者compareDocumentPosition,然后我们对于我们的得到的原始数据做一些检测

1 if (!testNode) return [];

如果这里没有第一个节点(也就是说结果里并没有我们需要的元素),就返回一个空数组。

背景:array.sort()

array.sort()方法有一个可选函数的参数。这个函数用来比较两个元素(通常称为a和b)。如果第一个应该在前那么这个函数就返回一个负数,如果第二个应该在前那么就返回一个正值。

编缉推荐阅读以下文章

  • JavaScript DOM学习第六章:表单实例
  • JavaScript DOM学习第五章:表单简介
  • JavaScript DOM学习第三章:内容表格
  • JavaScript DOM学习第二章:编辑文本
  • JavaScript DOM学习第一章:W3C DOM简介
  • javaScript DOM方法与属性摘要

Tags:JavaScript DOM 学习

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接