Функция, которая считает количество элементов
как можно сократить код, неужели к каждому тегу, писать своё условие?
Как сделать, что бы сообщение Элементов с классом выводило только 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/ |
Я так сделал
https://jsfiddle.net/vubq84e4/ и теперь для каждого класса, надо будет создавать свой массив? |
Использовать объекты тут логичнее всего: https://jsfiddle.net/vubq84e4/1/
|
Часовой пояс GMT +3, время: 12:43. |