Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Итого (сложить несколько var) (https://javascript.ru/forum/jquery/44252-itogo-slozhit-neskolko-var.html)

Nios 12.01.2014 22:56

Итого (сложить несколько var)
 
Сразу предупреждаю, js только начал познавать.

Есть скрипт

<script type='text/javascript'>
jQuery(function(){
	jQuery('#sdmd_calc_input').keyup(function(){
		var v = 0+this.value;
		itog = ('#rez_disp');
		pokraska = ('#p_disp');
		okna = ('#o_disp');
		krovla = ('#r_disp');
		montag = ('#m_disp');
		izgotov = ('#k_disp');
		fundament = ('#f_disp');

		jQuery(fundament).html( v*3850 );
		jQuery(izgotov).html( v*19250 );
		jQuery(montag).html( v*4550 );
		jQuery(krovla).html( v*3850 );
		jQuery(okna).html( v*2800 );
		jQuery(pokraska).html( v*700 );
		jQuery(itog).html( );
	})
});
</script>


Но не получается вывести itog (сложение всех значений). Пишу pokraska+okna но в значение выводит #o_disp#p_disp

Deff 13.01.2014 01:59

:) Лень строки переставлять(правильнее было делать бы массив из чисел(v*3850), а только в конце вставлять в HTML)
<script type='text/javascript'>

$(function(){
	$('#sdmd_calc_input').keyup(function(){
		var v = 0+this.value;
		itog = $('#rez_disp');
		pokraska = $('#p_disp');
		okna = $('#o_disp');
		krovla = $('#r_disp');
		montag = $('#m_disp');
		izgotov = $('#k_disp');
		fundament = $('#f_disp');

    var arr = [
		fundament.html( v*3850 ),
		izgotov.html( v*19250 ),
		montag.html( v*4550 ),
		krovla.html( v*3850 ),
		okna.html( v*2800 ),
		pokraska.html( v*700 )
    ];
		
		var itg = 0
		for(var i=0; i<arr.length; i++){
		  itg=+arr.html();
		}
		$(itog).html(itg);
	})
});
</script>

Хотя у Вас формула Итога постоянна и равна
var itg = v*(3850 + 19250 + 4550 + 3850 +2800 +700 );

Так что можно вычислять сразу

Nios 13.01.2014 02:26

Спасибо огромное) Обычная математика, все оказывается проще чем кажется.


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