JSFiddle - React, Tailwind, and code Playground
by gabs00
HTML
<div class= "a" id= "top">
<div class ="a" >
</div>
<div class = "b">
<div class ="a" >
</div>
<div class = "b">
</div>
</div>
</div>
JavaScript
var classes = 'a';
console.log(getElementsByClassName(classes));
console.log(document.getElementsByClassName(classes));
function getElementsByClassName(classes, elem){
if(!elem){
elem = document.body;
}
var results = [];
var target_classes = classes.split(' ');
var class_list = elem.classList;
if(class_list){
if(check_classes(target_classes, class_list)){
results.push(elem);
}
}
if(elem.hasChildNodes()){
var children = elem.childNodes;
for(var i = 0; i < children.length; i++){
var matches = getElementsByClassName(classes, children[i]);
transfer(results, matches);
}
}
return results;
}
function transfer(in_array, out_array){
var item;
while(item = out_array.shift()){
in_array.push(item);
}
}
function check_classes(classes, class_list){
for(var i = 0; i < classes.length; i++){
if(!class_list.contains(classes[i])){
return false;
}
}
return true;
}