Javascript-форум (https://javascript.ru/forum/)
-   Javascript под браузер (https://javascript.ru/forum/css-html/)
-   -   Подсчет суммы блоков на лету (https://javascript.ru/forum/css-html/73074-podschet-summy-blokov-na-letu.html)

Sacred13 20.03.2018 00:08

Подсчет суммы блоков на лету
 
Приветствую!

Помогите разобраться с задачей. Есть блоки

<div class="sum2 block"></div> <!--сюда подгружается сумма в зависимости от выбранных селектов/инпутов-->
<div class="block"></div> <!-- сюда также-->


То есть при загрузке страницы блоки пустые, без цифр

Общую сумму, вывожу:
<div class="allblock"></div>


Скрипт который производит подсчет, однако он умеет суммировать, только если в блоки попадают цифры при загрузке страницы
<script>
var sum = 0, i;
var blocks = document.querySelectorAll('.block');
for (i = 0; i < blocks.length; i++) {
     sum = sum+parseInt(blocks[i].innerHTML);
  }
$('.allblock').html(sum);
</script>


Так вот, в случае когда цифры попадают в блоки (<div class="block"></div>)(уже после того как страница загрузилась и я выбираю какие либо значения в селектах), сумма не суммируется. То есть цифры в блоки <div class="block"></div> попадают, но не суммируются. Как в таком случае подать скрипту сигнал, что нужно выполнить пересчет суммы блоков на лету?

Заранее спасибо.

j0hnik 20.03.2018 03:16

$(function(){
	function sumN(){
		var sum = 0;
		$('.block').each(function(){
			sum += parseInt($(this).html());
		});
		$('.allblock').html(sum);
	}
	$('select').on('change', sumN);
	sumN();
});


поменяйте ваш гибрид на эту.
вместо этого селектора $('select') можно указать можно указать класс нужных селектов.


Часовой пояс GMT +3, время: 14:18.