Общий подсчёт из нескольких полей
Здравствуйте:write: . Есть 4 таблицы.
В каждой по нескольку десятков вычисляемых input-полей для ввода. В каждой таблице все поля суммируются и результат выводится в <span></span>. Таблицы никак не связаны между собой. В общем хочу сделать так, чтобы был ещё один <span></span>, в который суммируются все 4 <span>'а соответствующих четырёх таблиц. Сам никак не дотумкаю.:help: Спасибо заранее. :D HTML-КОД: Код:
JAVASCRIPT-КОД: Код:
|
Вы можете записать значение в span, значит можете и получить его оттуда. Остается только просуммировать полученное
|
SkyLight,
Если бы я знал как это сделать, то не задавал бы вопрос на форуме. Спасибо) |
Вы не знаете, как получить содержимое тега? Вы же это уже сделали. И уже записали результат одной операции в спан. Теперь вам нужно сделать по сути то же самое, что есть сейчас, просто с другими блоками.
|
SkyLight,
Здесь ни всё я делал сам. В JS я начинающий, так что прошу помощи. |
Пользуясь вашим кодом:
var переменная = parseInt($(селектор).text()) Так вы берете значение из элемента, попутно приводя его к числу. $(селектор).text(переменная); Так вы записываете значение в элемент. Работу с арифметикой не расписываю. Итого: у вас есть все необходимое уже тут для решения задачи. |
SkyLight,
Спасибо за разъяснение, буду пробовать. |
В общем не разобрался. Так и не понял как правильно записать. Ничего не получилось. Спасибо.
|
А что хоть пробовали-то? Вы покажите
|
SkyLight,
Боюсь, это слишком глупо, чтобы показывать) var sum = 0; var totalSum1 = parseInt($(#"count_price span").text(totalSum); var totalSum2 = parseInt($(#"count_price2 span").text(totalSum); var totalSum3 = parseInt($(#"count_price3 span").text(totalSum); var totalSum4 = parseInt($(#"count_price4 span").text(totalSum); sum += totalSum1 + totalSum2 + totalSum3 + totalSum4; |
Ну, вы почти угадали. Только в первых четырех выражениях totalSum из скобок уберите - если у text есть аргумент, то значение записывается, если нет - то получается. Ну и последняя строка: зачем вам там "+="?
|
totalSum из скобок убрал, "+" перед "=" убрал. И как вывести полученное значение "sum" в <span>?
$("#sum span").text(sum); Как-то так? |
Да, так. При этом, пересчет суммы надо делать при каждом пересчете ваших промежуточных сумм, т.е. всех тех функций выше.
|
SkyLight,
Я бы с удовольствием. Но не представляю как это сделать. Мучаюсь уже два дня с этой ерундой... |
У вас пересчет промежуточных сумм происходит в обработчиках, повешенных на change. Теперь вам надо туда же добавить пересчет общей суммы.
|
SkyLight,
Ну это я понял, только как это сделать, я не знаю.:blink: |
Вы уже написали кусок, который суммирует результаты. Теперь только надо добавить его во все обработчики на change'ах.
|
SkyLight,
Странно как-то получается. Я добавляю во все обработчики, в начало каждого, переменную sum, т.е. var sum = 0; После этого добавляю: sum = totalSum1 + totalSum2 + totalSum3 + totalSum4; в конец каждого обработчика. + ко всему я добавляю: var sum = 0; var totalSum1 = parseInt($(#"count_price span").text()); var totalSum2 = parseInt($(#"count_price2 span").text()); var totalSum3 = parseInt($(#"count_price3 span").text()); var totalSum4 = parseInt($(#"count_price4 span").text()); sum = totalSum1 + totalSum2 + totalSum3 + totalSum4; $("#sum span").text(sum); после всех 4 обработчиков? Странная структура получается... Разве это логически правильно? |
Цитата:
|
В общем вообще всё перестало работать.:stop:
|
Где код?
|
Код:
|
Цитата:
sum = totalSum1 + totalSum2 + totalSum3 + totalSum4;недостаточно. |
SkyLight,
Что я должен сделать - не понятно. Уж такой я нуб в JS. |
Значения группы переменных totalSum1..totalSum4 обновляйте
|
Как это сделать? Люди. Я спрашиваю: "как сделать?", получаю в ответ "тебе надо сделать это...", я понял что мне много чего надо сделать, но я спрашиваю как? Спасибо за Ваши отклики, всё же, надеюсь на понимание.
|
Я бы посоветовал начать пользоваться консолью - хорошая штука для отлова ошибок. А что вам нужно сделать я уже сказал: выполнять в конце каждого обработчика вместо
sum = totalSum1 + totalSum2 + totalSum3 + totalSum4; это: var sum = 0; var totalSum1 = parseInt($(#"count_price span").text()); var totalSum2 = parseInt($(#"count_price2 span").text()); var totalSum3 = parseInt($(#"count_price3 span").text()); var totalSum4 = parseInt($(#"count_price4 span").text()); sum = totalSum1 + totalSum2 + totalSum3 + totalSum4; $("#sum span").text(sum); Только предварительно исправьте в этом куске ошибки - вы же решетку за кавычки вынесли зачем-то. Кстати, общий вопрос: а раз вы толком не знаете JS, то зачем взялись за такую задачу? Да еще и с jQuery. Не с этого начинать надо... У вас же в итоге только каша получится. С простого надо было начать. |
Часовой пояс GMT +3, время: 10:47. |