document.getElementsByClassName使用方法
分类:Javascript| 发布:camnprbubuol| 查看:7076 | 发表时间:2013/6/27
document.getElementsByClassName 故名思议就是根据Class名获取元素集合。但是这个方法是新生的,我们也可以自己来实现它。原理如下:
document.getElementsByTagName这个函数是获取指定标签名的节点集,通常先使用getElementsByTagName("*")取出文档中所有元素,然后进行遍历,使用正则表达式找出匹配的元素放入一个数组返回。由于IE5不支持document.getElementsByTagName("*"),要使用分支document.all以防错误。
04 | function getElementsByClassName(oElm, strTagName, strClassName){ |
05 | var arrElements = (strTagName == "*" && oElm.all)? oElm.all : |
06 | oElm.getElementsByTagName(strTagName); |
07 | var arrReturnElements = new Array(); |
08 | strClassName = strClassName.replace(/\-/g, "\\-" ); |
09 | var oRegExp = new RegExp( "(^|\\s)" + strClassName + "(\\s|$)" ); |
11 | for ( var i=0; i < arrElements.length; i++){ |
12 | oElement = arrElements[i]; |
13 | if (oRegExp.test(oElement.className)){ |
14 | arrReturnElements.push(oElement); |
17 | return (arrReturnElements) |
在ie9+、ff5+上可以直接用document.getElementsByClassName("camnpr")函数获得你要的结果,但在ie8、7、6里边是没有这个函数的,所以需要你自己编写一个出来。或者使用下边的这个。
一个跨浏览器的方式通过class名获取元素集合:地址是:
http://getelementsbyclassname.googlecode.com/files/getElementsByClassName-1.0.1.js