自定义getElementsByClassName方法
在IE8以下是不兼容getElementsByClassName方法的。这时可以选择通过其他方式来达到此方法的效果。
<script>
function elementByClassName(node, classStr) {
//先获取node节点下的全部子节点 classStr是传入的要获取节点的类名
let nodes = node.getElementsByTagName("*");
let arr = [];
for (let i = 0; i < nodes.length - 1; i++) {
if (nodes[i].className === classStr) {
arr.push(nodes[i]);
}
}
return arr;
}
</script>
-
自定义一个函数,传入两个参数进去。分别是父节点node;所要获取的节点类名classStr。
-
首先获取到node节点以下的所有子节点nodes。
创建一个空的数组,存放符合条件的所需要的节点。
遍历nodes,同时判断符合条件的节点,将他存放到数组中。