JS代码题14
2019-12-08 本文已影响0人
twentyshaw
实现类似getElementsByClassName 的功能
自己实现一个函数,查找某个DOM节点下面的包含某个class的所有DOM节点。不允许使用原生提供的getElementsByClassName,querySelectorAll等原生提供DOM查找函数。
代码如下:
function findClass(node,name){
var nodes
if(node){
nodes = node.children
}else{ //没有传节点的情况下,就搜索整篇文档内的元素
nodes = document.getElementsByTagName('*')
}
var classes
var result = []
for (var i = 0; i < nodes.length; i++) {
classes = nodes[i].className.split(' ') //一个元素可能拥有多个classname,被空格隔开
if (classes.indexOf(name) !== -1) {
result.push(nodes[i])
}
}
return result
}
还是用到了原生查找函数:document.getElementsByTagName
,不知道有没有不能这个函数能获取所有元素节点的方法