1. 程式人生 > >js--封裝類名的dom操作

js--封裝類名的dom操作

type get oct charset function itl height strong lan

dom操作中的getElementByClassName()在ie6、7、8中具有兼容性問題,而在高級瀏覽器中就不存在這種問題。以下通過代碼對getElementByClassName()的封裝 。

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
    <style>
        div{
            width: 100px;
            height: 100px;
            background-color: pink;
            margin: 10px;
        }
    </style>
    <script>
        window.onload = function(){
            console.log(getClass("test").length);
        }
        function getClass(className){
            //如果瀏覽器支持著,則直接返回
            if(document.getElementsByClassName){
                return document.getElementsByClassName(className);
            }
            //不支持的瀏覽器
            var  arr = [];
            var dom = document.getElementsByTagName("*");

            for(var i=0; i < dom.length; i++){
//                if(dom[i].className == className){
//                    arr.push(dom[i]);
//                }i
                //改進後的class

                var  txt = dom[i].split(" ");//["dome","test"]
                for(var j=0; j < txt.length; j++){
                    if(txt[j] == className){
                        arr.push(dom[i]);
                    }
                }
            }
            return arr;
        }

        /*
        原理,遍歷所有的div。通過每個div的className來判斷
         */
    </script>
</head>
<body>

</body>
<div class="dome"></div>
<div></div>
<div class="test"></div>
<div></div>
<div class="dome test"></div>
<div></div>
<div></div>
<div></div>
<div class="dome"></div>
<div></div>
</html>

  

js--封裝類名的dom操作