как можно сократить код, неужели к каждому тегу, писать своё условие?
Как сделать, что бы сообщение Элементов с классом выводило только 1 раз, а не три?
<div class='c1'></div>
<div></div>
<span></span>
<a href=""></a>
function scanDOM(){
var a = document.getElementsByTagName('*')
var childNodes = document.body.childNodes
var count = 0;
var count1 = 0;
var count2 = 0;
var count3 = 0;
var count4 = 1;
for(var i = 0; i < a.length; i++){
if(a[i].tagName == 'DIV'){
count++
}
if(a[i].tagName == 'SPAN'){
count1++
}
if(a[i].tagName == 'A'){
count2++
}
if(a[i].className){
count3++
}
console.log('Элементов с классом ' + a[i].className + ' '+ count4)
}
console.log('Тэгов div' + ': ' +count)
console.log('Тэгов span' + ': ' +count1)
console.log('Тэгов a' + ': ' +count2)
for (var i = 0; i < childNodes.length; i++) {
if(childNodes[i].nodeType == 3){
count4++
}
}
console.log('Текстовых узлов: ' + count4)
}
scanDOM()
в песочнице
https://jsfiddle.net/p6b8nqxb/