首页 > 编程语言 > 详细

每日一题_JavaScript.使getElementsByClassName兼容IE7/8和火狐?

时间:2017-02-09 16:23:51      阅读:453      评论:0      收藏:0      [点我收藏+]

具体需求:

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!