JSFiddle - React, Tailwind, and code Playground
HTML
<div class='c1'></div>
<div></div>
<span></span>
<a href=""></a>
JavaScript
function scanDOM(){
var elements = document.getElementsByTagName('*');
var tags = {},
classes = {},
textNodes = 0;
function increment(object, value){
if(value in object) object[value]++;
else object[value] = 1;
}
for(var i = 0; i < elements.length; i++){
var tag = elements[i].tagName.toLowerCase(),
cls = elements[i].className.match(/\S+/g),
childs = elements[i].childNodes;
increment(tags, tag);
for(var j = 0; j < childs.length; j++){
if(childs[j].nodeType === 3) textNodes++;
}
if(cls) for(var j = 0; j < cls.length; j++){
increment(classes, cls[j]);
}
}
for(var tag in tags){
console.log('Тэгов ' + tag + ': ' + tags[tag]);
}
for(var cls in classes){
console.log('Элементов с классом ' + cls + ': ' + classes[cls]);
}
console.log('Текстовых узлов: ' + textNodes)
}
scanDOM()