function getElementsByClassName(node,classname){
if(node.getElementsByClassName){
return node.getElementsByClassName(**classname**);
} else {
var results=new Array();
var elems=node.getElementsByTagName("*");
for(var i=0; i
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
低版本的ie浏览器不支持getElementsByClassName方法,上面那段代码是封装了一个兼容性良好的getElementsByClassName,各个浏览器版本都可以使用。
比如说你要在整个页面中获取元素,第一个参数就是document ,第二个参数是你想要获取的元素的classname 。
比如说你要在ul中获取元素,第一个参数就是对ul的引用,这个引用可以通过其他方法例如getElementById或者getElementsByTagName 来得到,第二个参数同上
因为那是个形参呀,你要使用这个函数时,将字符串(类名)作为第二个参数传递过去即可。
这个写法有bug,建议第八行改成
if(elems[i].className.indexOf(" "+classname+" ") !=-1) {
这样就不会在找类名为'p'的时候也匹配到类名'p123','123p','1p23'之类的
为什么是*,代表什么意思
用document.querySelector()方法更方便吧,不过ie6和ie7不兼容好像