JavaScript-手寫實現getElementsByClassName功能方法

參數爲String類型,指定類名

Document.prototype.getByClassName = function ( className ){
            var ansArr = [];
            var allClass = document.getElementsByTagName('*'); //得到所有的DOM標籤元素 返回的是類數組
            var allDomArr = Array.prototype.slice.call(allClass,0);    //通過改變this指向,變成數組
            
            // 去掉DOM元素中className多餘空格 
            function dealClass(dom) {
                var reg = /\s+/g;
                var arrClassName = dom.className.replace(reg,' ').trim();
                return arrClassName;   //返回的是字符串
            }

            allDomArr.forEach( function (ele,index){
                var allitemarr  = dealClass(ele).split(' ');        // 字符串中split 以空格拆分成數組
                for(var i = 0; i < allitemarr.length; i++){
                    if(allitemarr[i] == className){
                        ansArr.push(ele);
                        break;
                    }
                }
            });

            return ansArr;
        }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章