Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как выводить результат вибронного сумму (https://javascript.ru/forum/misc/50589-kak-vyvodit-rezultat-vibronnogo-summu.html)

grima 03.10.2014 10:06

Как выводить результат вибронного сумму
 
<span>
<span class="itogo" value="120">120 руб<input type="checkbox"  /></span>
<span class="itogo" value="123">123 руб<input type="checkbox"  /></span>
<span class="itogo" value="23">23 руб<input type="checkbox"  /></span>
<span class="itogo" value="34">34 руб<input type="checkbox"  /></span>
<span class="itogo" value="45">45 руб<input type="checkbox"  /></span>
<span class="itogo" value="56">56 руб<input type="checkbox"  /></span>
<span class="itogo" value="65">65 руб<input type="checkbox"  /></span>
<span class="itogo" value="76">76 руб<input type="checkbox"  /></span>
<span class="itogo" value="57">57 руб<input type="checkbox"  /></span>

</span>

<div><span id="summa">0</span></div>

<script type="text/javascript">
    function summ(){
 var summ = document.getElementByid("summ");
 var total = 0;
$('.itogo').each(function() {
    total += parseInt($(this).attr('value'));
});
summ.innerhtml = total;
}
 </script>


помогите разобраться

ksa 03.10.2014 10:25

Цитата:

Сообщение от grima
помогите разобраться

Дык!

<!DOCTYPE html>
<html>
<head>
<script src='http://code.jquery.com/jquery-latest.js'></script>
<!--
<link rel='stylesheet type=text/css href=tmp.css' />
-->
<style type='text/css'>
</style>
<script type='text/javascript'>
</script>
</head>
<body>
<span>
<span class="itogo" value="120">120 руб<input type="checkbox"  /></span>
<span class="itogo" value="123">123 руб<input type="checkbox"  /></span>
<span class="itogo" value="23">23 руб<input type="checkbox"  /></span>
<span class="itogo" value="34">34 руб<input type="checkbox"  /></span>
<span class="itogo" value="45">45 руб<input type="checkbox"  /></span>
<span class="itogo" value="56">56 руб<input type="checkbox"  /></span>
<span class="itogo" value="65">65 руб<input type="checkbox"  /></span>
<span class="itogo" value="76">76 руб<input type="checkbox"  /></span>
<span class="itogo" value="57">57 руб<input type="checkbox"  /></span>
</span>
<div><span id="summa">0</span></div>
<script type="text/javascript">
function summ(){
	var summ = document.getElementById("summa");
	var total = 0;
	$('.itogo').each(function() {
		total += parseInt($(this).attr('value'));
	});
	summ.innerHTML = total;
};
summ();
 </script>

</body>
</html>
</html>

Сколько же у тебя там ошибок! :(

grima 03.10.2014 10:28

Но не выводит же ответ выбронного

ksa 03.10.2014 10:35

Вот с выбранными

<!DOCTYPE html>
<html>
<head>
<script src='http://code.jquery.com/jquery-latest.js'></script>
<!--
<link rel='stylesheet type=text/css href=tmp.css' />
-->
<style type='text/css'>
</style>
<script type='text/javascript'>
</script>
</head>
<body>
<span>
<span class="itogo" value="120">120 руб<input type="checkbox"  /></span>
<span class="itogo" value="123">123 руб<input type="checkbox"  /></span>
<span class="itogo" value="23">23 руб<input type="checkbox" checked /></span>
<span class="itogo" value="34">34 руб<input type="checkbox"  /></span>
<span class="itogo" value="45">45 руб<input type="checkbox"  /></span>
<span class="itogo" value="56">56 руб<input type="checkbox"  /></span>
<span class="itogo" value="65">65 руб<input type="checkbox" checked /></span>
<span class="itogo" value="76">76 руб<input type="checkbox"  /></span>
<span class="itogo" value="57">57 руб<input type="checkbox"  /></span>
</span>
<div><span id="summa">0</span></div>
<script type="text/javascript">
function summ(){
	var summ = document.getElementById("summa");
	var total = 0;
	$('.itogo > input:checked').each(function() {
		total += parseInt($(this.parentNode).attr('value'));
	});
	summ.innerHTML = total;
};
summ();
 </script>

</body>
</html>
</html>

ksa 03.10.2014 10:35

Цитата:

Сообщение от grima
Но не выводит же ответ выбронного

Мой первый вариант хоть работает... :D

kostyanet 04.10.2014 18:21

Поменяйте спаны на label - улучшите жизнь пользователя, и когда лейбл щелкнут сразу меняйте валуе на то, которое надо посчитать, а когда отщелкнут - на 0. Валуе храните в data-value, а руб ... сколько будет 120 руб + 35 руб? 120руб35руб. :) До какого падения нравов может дойти parseInt()?

grima 07.10.2014 05:12

Цитата:

Сообщение от ksa (Сообщение 333217)
Вот с выбранными

<!DOCTYPE html>
<html>
<head>
<script src='http://code.jquery.com/jquery-latest.js'></script>
<!--
<link rel='stylesheet type=text/css href=tmp.css' />
-->
<style type='text/css'>
</style>
<script type='text/javascript'>
</script>
</head>
<body>
<span>
<span class="itogo" value="120">120 руб<input type="checkbox"  /></span>
<span class="itogo" value="123">123 руб<input type="checkbox"  /></span>
<span class="itogo" value="23">23 руб<input type="checkbox" checked /></span>
<span class="itogo" value="34">34 руб<input type="checkbox"  /></span>
<span class="itogo" value="45">45 руб<input type="checkbox"  /></span>
<span class="itogo" value="56">56 руб<input type="checkbox"  /></span>
<span class="itogo" value="65">65 руб<input type="checkbox" checked /></span>
<span class="itogo" value="76">76 руб<input type="checkbox"  /></span>
<span class="itogo" value="57">57 руб<input type="checkbox"  /></span>
</span>
<div><span id="summa">0</span></div>
<script type="text/javascript">
function summ(){
	var summ = document.getElementById("summa");
	var total = 0;
	$('.itogo > input:checked').each(function() {
		total += parseInt($(this.parentNode).attr('value'));
	});
	summ.innerHTML = total;
};
summ();
 </script>

</body>
</html>
</html>

когда checked написан то эти суммирует а мне нужен чтоб я сам нажал и автоматически суммировал

ruslan_mart 07.10.2014 07:05

http://learn.javascript.ru/play/xYLh9b

<!DOCTYPE HTML>
<html>
  
  <head>
    <style type="text/css">
      #result label {
        clear: both;
        display: block;
        margin: 10px 0;
        width: 200px;
      }
      #result input {
        float: right;
      }
    </style>
  </head>
  
  <body>
    <div id="result">
      <label>120 руб
        <input data-price="120" type="checkbox">
      </label>
      <label>123 руб
        <input data-price="123" type="checkbox">
      </label>
      <label>23 руб
        <input data-price="23" type="checkbox">
      </label>
      <div>Итого: <span id="result-sum">0</span></div>
    </div>
    
    <script type="text/javascript">
      (function() {
        var i, total = 0,
            resultElem = document.getElementById('result'),
            resultLabels = resultElem.querySelectorAll('input[type="checkbox"]'),
            resultSum = document.getElementById('result-sum');
        function getSum() {
          var price = +this.getAttribute('data-price');
          total += this.checked ? price : -price;
          resultSum.innerHTML = total;
        }
        for(i=0; i<resultLabels.length; i++) resultLabels[i].onchange = getSum;
      })();
    </script>
  </body>

</html>

grima 07.10.2014 11:59

Спасибо огромное то что надо !


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