實(shí)現(xiàn)類似getElementsByClassName 的功能
自己實(shí)現(xiàn)一個函數(shù),查找某個DOM節(jié)點(diǎn)下面的包含某個class的所有DOM節(jié)點(diǎn)。不允許使用原生提供的getElementsByClassName,querySelectorAll等原生提供DOM查找函數(shù)。
代碼如下:
function findClass(node,name){
var nodes
if(node){
nodes = node.children
}else{ //沒有傳節(jié)點(diǎn)的情況下,就搜索整篇文檔內(nèi)的元素
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
}
還是用到了原生查找函數(shù):document.getElementsByTagName,不知道有沒有不能這個函數(shù)能獲取所有元素節(jié)點(diǎn)的方法