JavaScript-手写实现getElementsByClassName功能方法

mac2022-06-30  84

参数为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; }
最新回复(0)