开心,可以写前端博客了,有误的话希望大家给我指导。
修改,早上的版本考虑不全,没有考虑‘aaa’包含在’aaabbb’的情况,然后下午发现了一个更简便的版本
//为了兼容低版本的浏览器没有该方法适用于有多个类名
function getElementsByClassName(node,classname){
if(node.getElementsByClassName){
//使用现有方法
return node.getElementsByClassName(classnames);
}else{
var results = new Array();
var elems = node.getElementsByTagName("*");
for(var i=0,len=elems.length;i<len;i++){
if(elems[i].className === classname || elems[i].className.indexOf(classname + ' ')>=0
||elems[i].className.indexOf(' '+classname+' ')>=0||elems[i].className.indexOf(' '+classname)>=0){
results.push(elems[i]);
}
}
return results;
}
}
测试页面:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<script type="text/javascript" src="js/FunctionGetElementsByClassName.js"></script>
</head>
<body>
<div id="div1">
<span class="do do1 do2"></span>
<span class="do do1"></span>
<span class="do"></span>
</div>
</body>
<script type="text/javascript">
if(document.getElementsByClassName){
alert(typeof(document.getElementsByClassName));
alert("该方法存在");
}else{
var ele = document.getElementById("div1");
// alert(ele);
var len = getElementsByClassName(ele,"do do2").length;
alert(len);
}
</script>
</html>