Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 10.06.2016, 04:24
Новичок на форуме
Отправить личное сообщение для helphelp Посмотреть профиль Найти все сообщения от helphelp
 
Регистрация: 10.06.2016
Сообщений: 1

Подсчитать кол-во 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'
Ответить с цитированием
  #2 (permalink)  
Старый 10.06.2016, 04:56
Профессор
Отправить личное сообщение для Bond Посмотреть профиль Найти все сообщения от Bond
 
Регистрация: 16.06.2013
Сообщений: 172

Если говорить про id то предполагается что он один на странице, других с таким же именем быть не должно
Если речь о классах то так можно посчитать
var sum = document.getElementsByClassName("myClass").length;

В sum запишется количество 10, 20, 35.... Короче сколько будет классов с указанным называнием сколько и запишется.

Последний раз редактировалось Bond, 10.06.2016 в 05:39.
Ответить с цитированием
  #3 (permalink)  
Старый 10.06.2016, 20:43
Аватар для pureJS
Аспирант
Отправить личное сообщение для pureJS Посмотреть профиль Найти все сообщения от pureJS
 
Регистрация: 04.06.2016
Сообщений: 70

Сообщение от helphelp Посмотреть сообщение
Здрасьте. Подскажите пожалуйста каким образом можно подсчитать 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'

helphelp, ID нужно задавать все разные, иначе при обращению по ID будет всегда выбираться только 1-ый елемент с таким ID.

Посчитать можно так:

Код:
<div>
	<i id="h1"></i>
	<i id="h2"></i>
	<i id="h3"></i>
	<i></i>
	<i></i>
</div>
<script type="text/javascript">
var elems = document.getElementsByTagName('i');
var count = 0;
for (var i = 0; i < elems.length; i++)
{
	if(elems[i].id != '')
		count++;
}
alert(count);
</script>
Ответить с цитированием
  #4 (permalink)  
Старый 10.06.2016, 21:22
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

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>

Последний раз редактировалось рони, 10.06.2016 в 21:26.
Ответить с цитированием
  #5 (permalink)  
Старый 10.06.2016, 21:33
Аватар для EmperioAf
Профессор
Отправить личное сообщение для EmperioAf Посмотреть профиль Найти все сообщения от EmperioAf
 
Регистрация: 15.01.2015
Сообщений: 622

<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>
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как подсчитать кол-во элементов формы определенного типа ratkus91 ExtJS 4 19.05.2014 12:41
Как подсчитать количество чекбоксов ? mazaxaka jQuery 2 07.08.2012 18:02
Подсчитать кол-во строк в таблице? bobroff jQuery 3 04.12.2009 12:29
Задача подсчитать суммы каталога osv Общие вопросы Javascript 2 30.07.2009 05:24
подсчитать кол-во определенного слова в текста Гость Общие вопросы Javascript 3 17.07.2009 11:15