Подсчитать кол-во ID
Здрасьте. Подскажите пожалуйста каким образом можно подсчитать ID на странице?
Например у меня есть следующее: <i id='1'></i> <i id='2'></i> <i id='3'></i> <i id='2'></i> <i id='1'></i> Что мне нужно: Нужно задать innerHTML определенному <div'y: кол-во элементов с id'1' Нужно задать innerHTML определенному <div'y: кол-во элементов с id'2' Нужно задать innerHTML определенному <div'y: кол-во элементов с id'3' |
Если говорить про id то предполагается что он один на странице, других с таким же именем быть не должно
Если речь о классах то так можно посчитать var sum = document.getElementsByClassName("myClass").length; В sum запишется количество 10, 20, 35.... Короче сколько будет классов с указанным называнием сколько и запишется. |
Цитата:
helphelp, ID нужно задавать все разные, иначе при обращению по ID будет всегда выбираться только 1-ый елемент с таким ID. Посчитать можно так: Код:
<div> |
helphelp,
id уникально, лучше использовать class или data-id ... но если очень хочется, раскомментируйте строку ниже <!DOCTYPE html> <html> <head> <title>Untitled</title> <meta charset="utf-8"> <style type="text/css"> i:after{ content: attr(id); } </style> <script> window.addEventListener('DOMContentLoaded', function() { var nodes = document.querySelectorAll('i'), obj = {}; [].forEach.call( nodes, function(i) { var id = i.dataset.id; //var id = i.id; id && (obj[id]++|| (obj[id] = 1)) ; }); Object.keys(obj).forEach(function (id) { var div = document.createElement("div"); div.innerHTML = 'кол-во элементов с "id='+ id + '" : '+ obj[id] document.body.appendChild(div) }); }); </script> </head> <body> <i id='1' data-id='1'></i> <i id='2' data-id='2'></i> <i id='3' data-id='3'></i> <i id='2' data-id='2'></i> <i id='1' data-id='1'></i> </body> </html> |
<body> <div id="a"></div> <i id='a'></i> <i id='b'></i> <i id='d'></i> <i id='c'></i> <i id='d'></i> <script> var children = document.body.children; var idMap = {}; for (var i = 0; i < children.length; i++) { if (children[i].id){ var el = document.querySelector('#'+children[i].id); idMap[el.id] = idMap[el.id] ? idMap[el.id] + 1 : 1; } } console.log(idMap); </script> </body> |
Часовой пояс GMT +3, время: 06:24. |