« JavaScript学习笔记——函数[转]关于“Internet Explorer无法打开站点,已终止操作” »

getElementsByClassName操作

  1. function getElementsByClassName(clsName,htmltag){    
  2.     var arr = new Array();    
  3.     var elems = document.getElementsByTagName(htmltag);   
  4.     for ( var cls, i = 0; ( elem = elems[i] ); i++ ){   
  5.     if ( elem.className == clsName ){ //只能取到className完全相等的情况,为考虑有多个class的情况   
  6.     arr[arr.length] = elem;   
  7.     }   
  8.     }   
  9.     return arr;   
  10. }   

-------------------------实例------------------------

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

<html xmlns="http://www.w3.org/1999/xhtml"> 

<head> 

<title> node list </title> 

</head> 

<body> 

<div id="theobj"> 

    <li class="aa" id="0">0</li> 

    <li class="aa" id="1">1</li> 

    <li class="aa" id="2">2</li> 

    <li class="aa" id="3">3</li> 

    <li class="aa" id="4">4</li> 

    <span class="aa">span0</span> 

    <span class="aa">span1</span> 

    <span class="aa">span2</span> 

    <span class="aa">span3</span> 

    <span class="aa">span4</span> 

</div> 

<div id="theobj1"> 

    <li class="aa" id="10">k0</li> 

    <li class="aa" id="11">k1</li> 

    <li class="aa" id="12">k2</li> 

    <li class="aa" id="13">k3</li> 

    <li class="aa" id="14">k4</li> 

    <span class="aa" id="20">sp1an0</span> 

    <span class="aa" id="21">sp23an1</span> 

    <p class="aa" id="22">sp3an2</p> 

    <span class="aa" id="23">sp4an3</span> 

    <span class="aa" id="24">sp5an4</span> 

</div> 

<div class="bb cc" id="el">23 2eell 23</div> 

 

<script language="Javascript"> 

function $id(id) {return document.getElementById(id);}  

 

var elems=document.getElementsByTagName('li');  

 

for (var i=0;i<elems.length ; i++ )  

{  

    elems[i].i=i+1;  

    elems[i].onclick=function() {  

    alert(this.i+'vs'+this.innerHTML);  

    }  

}  

 

alert(getElementsByClassName('aa','span','theobj1')[3].innerHTML);  

//alert(getElementsByClassName1('aa','li')[7].innerHTML);  

 

//从root的节点htmltag中取含有clsName的节点组成一个数组  

function getElementsByClassName(clsName,htmltag,root){   

    var arr = new Array();  

    var obj = document.getElementById(root);  

    var elems = obj.getElementsByTagName(htmltag);  

    for ( var cls, i = 0; ( elem = elems[i] ); i++ ){  

        if ( hasClass(clsName,elem) ) {  

            arr[arr.length] = elem;  

        }  

    }  

    return arr;  

}  

 

/*  

从页面中取所有含有clsName的htmltag节点组成一个数组。  

*/  

function getElementsByClassName1(clsName,htmltag){   

    var arr = new Array();   

    var elems = document.getElementsByTagName(htmltag);  

    for ( var cls, i = 0; ( elem = elems[i] ); i++ ){  

        if ( hasClass(clsName,elem) ){  

            arr[arr.length] = elem;  

        }  

    }  

    return arr;  

}  

 

/*  

判断对象elem中是否含有className:clsName,  

有则返回1,否则返回0;  

*/  

function hasClass(clsName,elem) {  

    var re;  

    var str = elem.className;  

    re = new RegExp('(?:^|\\s+)' + clsName + '(?:\\s+|$)') ;  

    return re.test(str) ? 1 : 0 ;  

}  

</script> 

</body> 

</html> 

  • 相关文章:

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

日历

最新评论及回复

最近发表

Powered By Z-Blog 1.8 Devo Build 80108

Copyright © 2006-2011 9ba.Cn. All Rights Reserved. 京ICP备05058609号