1.原生document.getElementsByClassName
兼容性ie9+,var elements = element.getElementsByClassName(names);
参数为指定类名,格式为字符串,也可以同时指定多个类名,如'a','a b','a b c'
。
2.兼容性方法实现
function getByClassName(name,node){
let all=node?node.getElementsByTagName('*'):document.getElementsByTagName('*')
let arr=[]
let nameArr=name.split(' ')
for(let i=0;i<all.length;i++){
if(isallhave(all[i],nameArr)){
arr.push(all[i])
}
}
return arr
}
function isallhave(ele,name){
if(ele.className){
for(let j=0;j<name.length;j++){
if(ele.className.split(' ').indexOf(name[j]) === -1){
return false
}
}
return true
}
return false
}
可以实现多个类名查找let class=getByClassName(name,node)
,name
可以是多个类名,node
为指定的元素节点,忽略则认为是在document
下查找。
网友评论