getElementsByClassName并不支持低版本的IE,所有找了个兼容的写法,
但是这个函数并不支持在class拥有多个值的情况下获取。
请问怎么可以实现。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>Document</title>
<script>
function getByClass(oParent, sClass){
var aEle=oParent.getElementsByTagName('*');
var aResult=[];
for(var i=0;i<aEle.length;i++){
if(aEle[i].className==sClass){
aResult.push(aEle[i]);
}
}
return aResult;
}
</script>
</head>
<body>
<p id="d3">
<span class="s3"></span>
<span class="s3"></span>
<span class="s3 s33"></span>
</p>
<script>
var oD3=document.getElementById('d3');
var aS3=getByClass(oD3,'s3');
alert(aS3.length); //这种情况下aS3.length的值只有2。
</script>
</body>
</html>
想想jquery不就实现了吗,那么这时就可以看源码了,改一下你的判断条件
aEle[2].className="s3 s33" 这个地方会把第三个的 "s3 s33" 同时找出来,所以aEle[2].className!=sClass 你的aResult数组里只有两项