第190天 用原生js实现类似getElementsByClassName的方法,不能使用querySelectorAll
function getElementsByClassName(className)
const tags = document.getElementsByTagName('*');
const tempTags = [];
for(let i=0, len = tags.length; i< len; i++)
{
let tag = tags[i];
tag.classList.contains(className) && tempTags.push(tag)
}
return tempTags;
}
实现的方式有很多种,楼上用了document.getElementsByTagName, 那我这里就用document.all
//正则实现
function getElementsByClassName(className){
const tags = document.getElementsByTagName('*');
const reg = new RegExp("\\b" + className + "\\b");
const tempTags = [];
for(let i=0, len = tags.length; i< len; i++)
{
let tag = tags[i];
reg.test(tag.className) && tempTags.push(tag)
}
return tempTags;
}
Most helpful comment