新的起点 新的开始

快乐生活 !

getElementByClassName some ways.

Tree Walker

An implementation using the DOM Level 2 Tree Walker methods. Builds a generic filter function and traverses through all elements.

document.getElementsByClass = function(needle) {
  
function acceptNode(node) {
    
if (node.hasAttribute("class")) {
      
var c = " " + node.className + " ";
       
if (c.indexOf(" " + needle + " "!= -1)
         
return NodeFilter.FILTER_ACCEPT;
    }
    
return NodeFilter.FILTER_SKIP;
  }
  
var treeWalker = document.createTreeWalker(document.documentElement,
      NodeFilter.SHOW_ELEMENT, acceptNode, 
true);
  
var outArray = new Array();
  
if (treeWalker) {
    
var node = treeWalker.nextNode();
    
while (node) {
      outArray.push(node);
      node 
= treeWalker.nextNode();
    }
  }
  
return outArray;
}

The Ultimate getElementsByClassName

Uses a pure DOM implementation, tries to make some optimizations for Internet Explorer.


function getElementsByClassName(oElm, strTagName, strClassName){
    
var arrElements = (strTagName == "*" && oElm.all)? oElm.all :
        oElm.getElementsByTagName(strTagName);
    
var arrReturnElements = new Array();
    strClassName 
= strClassName.replace(/\-/g, "\\-");
    
var oRegExp = new RegExp("(^|\\s)" + strClassName + "(\\s|$)");
    
var oElement;
    
for(var i=0; i<arrElements.length; i++){
        oElement 
= arrElements[i];     
        
if(oRegExp.test(oElement.className)){
            arrReturnElements.push(oElement);
        }   
    }
    
return (arrReturnElements)
}




posted on 2010-04-17 03:35 advincenting 阅读(788) 评论(0)  编辑  收藏 所属分类: 脚本


只有注册用户登录后才能发表评论。


网站导航:
 

公告

Locations of visitors to this page

导航

<2010年4月>
28293031123
45678910
11121314151617
18192021222324
2526272829301
2345678

统计

常用链接

留言簿(13)

随笔分类(71)

随笔档案(179)

文章档案(13)

新闻分类

IT人的英语学习网站

JAVA站点

优秀个人博客链接

官网学习站点

生活工作站点

最新随笔

搜索

积分与排名

最新评论

阅读排行榜

评论排行榜