您的位置主页 > 前端技术 > Javascript&js > document.getElementsByClassName的理想实现

document.getElementsByClassName的理想实现

2010-03-24    文章来源:互联网    浏览次数:2098     分享文章
 
  1. <script type="text/javascript">
  2. var getElementsByClassName = function (searchClass, node,tag) 
  3.     if(document.getElementsByClassName){ 
  4.         return  document.getElementsByClassName(searchClass) 
  5.     }else{ 
  6.         nodenode = node || document; 
  7.         tagtag = tag || "*"; 
  8.         var classes = searchClass.split(" "), 
  9.         elements = (tag === "*" && node.all)? node.all : node.getElementsByTagName(tag), 
  10.         patterns = [], 
  11.         returnElements = [], 
  12.         current, 
  13.         match; 
  14.         var i = classes.length; 
  15.         while(--i >= 0){ 
  16.             patterns.push(new RegExp("(^|\\s)" + classes[i] + "(\\s|$)")); 
  17.         } 
  18.         var j = elements.length; 
  19.         while(--j >= 0){ 
  20.             current = elements[j]; 
  21.             match = false
  22.             for(var k=0kl=patterns.length; k<kl; k++){ 
  23.                 match = patterns[k].test(current.className); 
  24.                 if (!match)  break; 
  25.             } 
  26.             if (match)  returnElements.push(current);  
  27.         } 
  28.         return returnElements; 
  29.     } 
  30. }
  31. function test()
  32. {
  33.     alert(getElementsByClassName('test')[0].value);
  34. }
  35. </script>
  36.  
  37. <input class='test' id='test_id' type='text' name='test' value='test'>
  38. <input type="button" value=" get " onclick="test()">

 

文章评论(查看全部)

昵 称 *
电子邮箱 *
网 址      6 + 3 = ?