具体需求:
1. 让getElementsByClassName兼容IE和火狐浏览器,通过类名获取元素集合?
实现思路:
1. 由于IE和火狐都支持getElementsByTagName,所以可以通过它遍历所有元素找出className中包含指定类名的元素存到数组返回即可.
具体代码:
<!DOCTYPE html>
<html lang="zh-cn">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title>兼容IE7/8+|FireFox getElementsByClassName</title>
<meta name="description" content="">
<meta name="keywords" content="">
<link href="" rel="stylesheet">
</head>
<body>
<div id="rMain0" class="rMain">
<div class="rMain"></div>
<div class="rMain"></div>
</div>
<script type="text/javascript">
function $_(id){
return document.getElementById(id);
};
if(!document.getElementsByClassName){
document.getElementsByClassName = function (className, element){
var results = [];
var element=element?element:document;
// 获取所有DOM元素
var echildren=element.getElementsByTagName(‘*‘);
for(var i=0;i<echildren.length;i++){
var curchild=echildren[i];
var classNames=curchild.className.split(‘ ‘);
// 如果当前元素包含className就压入results数组
for(var j=0;j<classNames.length;j++){
if(classNames[j]==className){
results.push(curchild);
break;
};
};
};
return results;
};
};
alert(document.getElementsByClassName(‘rMain‘, $_(‘rMain0‘)).length)
</script>
</body>
</html>本文出自 “满满李 - 运维开发之路” 博客,请务必保留此出处http://xmdevops.blog.51cto.com/11144840/1896339
每日一题_JavaScript.使getElementsByClassName兼容IE7/8和火狐?
原文:http://xmdevops.blog.51cto.com/11144840/1896339