今天在复习的时候注意到一个细节,原来 document.getElementsByClassName 是 HTML5 新增加的一个 js 函数,对于一些老浏览器例如 IE9 以下的浏览器是不支持这个函数的,所以在那些需要处理兼容性问题的,这个也是一个要处理的一个细节,同时也可称经常被面试官问道:
我翻阅了很多的博客,大家都是千篇一律的转载,我给大家写一个小例子,来给大家展示一下该函数怎么去做低版本浏览器的兼容性问题:
<html>
<body>
<div class="ccc"></div>
<i class="aaa"></i>
<i class="ccc"></i>
<script type="text/javascript">
if(!document.getElementsByClassName)//判断浏览器是否支持这个方法
{
document.getElementsByClassName=function(cname){
var selected=new Array();
var alltag=document.getElementsByTagName("*");//获取所有标签
for(var i=0;i<alltag.length;i++)
{
var t=alltag[i];
alert(t.className);
if(t.className==cname) //比较标签的class与所要查找的class是否相同
{
selected.push(t); //将相同的存入数组
}
}
return selected;
}
}
alert(document.getElementsByClassName("ccc").length); //演示:查找css类名为"ccc"的标签个数
</script>
</body>
</html>
弹出的结果是 2