用原生JS写getElementsByClassName方法
2016-11-13 本文已影响459人
iimT
技术不停止
getElementsByClassName是HTML5新增的DOM API 在IE8以下是不支持的,很多时候需要自己写一个getByClassName()方法
需要两个参数,一个parentObj父元素,一个是className
首先获取parents下所有节点,然后用一个for循环逐个判断其className是否等于我们要get的className如果相等的话就push到result中。
具体代码如下:
function getByClassName(obj,cls){
var elements = obj.getElementsByTagName("*");
var result = [];
for(var i=0;i<elements.length;i++){
if(elements[i].className==cls){
result.push(elements[i]);
}
}
return result;
}
其实这个方法还不是很完善,因为有的元素可能有不止一个className这个方法只适用于只含一个className的元素。
此文供个人记录和其他JS初学者学习
我叫掏粪 微博ID:我叫掏粪i
掏粪的独立博客:www.yewu233.com