JSFiddle - React, Tailwind, and code Playground
HTML
<div class="1 2 3 4">
<div class="2 1 3">
dfg
<div class="3">
<ul>
<li>
sdf
</li>
</ul>
sdfsd
</div>
</div>
</div>
JavaScript
function w (){
console.log(document);
var obj = {},
objClass = {},
objText = {
countText: 0
};
var el = document.querySelectorAll("*");
for(i = 0; i<el.length; i++){
var tagName = el[i].tagName;
console.log(el[i].nodeType);
if(el[i].nodeType === 1){
if(!obj[tagName]){
obj[tagName] = 1;
} else {
obj[tagName]++
}
if(el[i].hasAttribute('class')){
var classElements = el[i].classList;
// console.log(classElements);
for(var j=0; j<classElements.length; j++){
var className = classElements[j];
//console.log(classElements[j]);
if(!objClass[className]){
objClass[className] = 1;
} else{
objClass[className]++;
}}
}
}
if(el[i].nodeType == 3){
objText[countText] += 1;
alert('wer');
}
};
var textNode = el[0].childNodes;
for ( prop in obj ) {
if ( obj.hasOwnProperty(prop)) {
console.log('тегов', prop + ' : ' + obj[prop]);
}
};
for ( propClass in objClass ) {
if ( objClass.hasOwnProperty(propClass)) {
console.log('классов', propClass + ' : ' + objClass[propClass]);
}
};
for ( propText in objText ) {
if ( objText.hasOwnProperty(propText)) {
console.log('Текстовых узлов', propText + ' : ' + objText[propText]);
}
};
};
w();