Javascript.RU

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

Суммирование чисел
Добрый день. У меня на странице есть вот такой html код:
<div class="summa"></div>
<div class="product1">
<div class="price">100</div>
<a data-id="633" class="buy-now" onclick="return cart.add(this)">Купить</a>
</div>
<div class="product2">
<div class="price">200</div>
<a data-id="632" class="buy-now" onclick="return cart.add(this)">Купить</a>
</div>
Мне необходимо, чтобы при клике на гипперссылку в блок summa выходило число из блока price. Подскажите пожалуйста, кто делал подобное. В блоке summa может быть ничего или любое число.
Ответить с цитированием
  #2 (permalink)  
Старый 13.05.2016, 10:37
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

Янковиц,
<div class="summa"></div>
<div class="product1">
<div class="price">100</div>
<a data-id="633" class="buy-now" onclick="add(this)">Купить</a>
</div>
<div class="product2">
<div class="price">200</div>
<a data-id="632" class="buy-now" onclick="add(this)">Купить</a>
</div>
<script>
function add(elem) {
    document.getElementsByClassName('summa')[0].innerHTML =  elem.parentElement.getElementsByClassName('price')[0].innerHTML;
}
</script>

Только странно: ни выбора продуктов, ни количеств... Голое число, неизвестно к чему относящееся
И где же суммирование?
Цитата:
при клике на гипперссылку в блок summa выходило число из блока price

Последний раз редактировалось Dilettante_Pro, 13.05.2016 в 10:42.
Ответить с цитированием
  #3 (permalink)  
Старый 13.05.2016, 10:40
Профессор
Отправить личное сообщение для Янковиц Посмотреть профиль Найти все сообщения от Янковиц
 
Регистрация: 17.11.2014
Сообщений: 403

Это лишь часть кода. Количество и т.д. все уже работает. Осталась только корзина. Здорово, но немного не то. Нужно, чтобы суммировались числа. Кликнул по одной(+100), добавляет в блок summa 100, кликнул по другой (+200), стало в блоке summa 300. И так далее. Извините если неясно выразился.

Последний раз редактировалось Янковиц, 13.05.2016 в 10:52.
Ответить с цитированием
  #4 (permalink)  
Старый 13.05.2016, 11:03
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

<div class="summa"></div>
<div class="product1">
<div class="price">100</div>
<a data-id="633" class="buy-now" onclick="add(this)">Купить</a>
</div>
<div class="product2">
<div class="price">200</div>
<a data-id="632" class="buy-now" onclick="add(this)">Купить</a>
</div>
<script>
    function add(elem) {
        var res = document.getElementsByClassName('summa')[0],
            price = parseInt(elem.parentElement.getElementsByClassName('price')[0].innerHTML),
            sum = parseInt(res.innerHTML) | 0;
        res.innerHTML = sum + price;
          }
</script>
Ответить с цитированием
  #5 (permalink)  
Старый 13.05.2016, 11:05
Профессор
Отправить личное сообщение для Янковиц Посмотреть профиль Найти все сообщения от Янковиц
 
Регистрация: 17.11.2014
Сообщений: 403

Ответить с цитированием
  #6 (permalink)  
Старый 13.05.2016, 11:39
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

<a data-id="632" class="buy-now" data-price="XXX" onclick="return cart.add(this)">Купить</a>

Зачем тревожить другие элементы, если в функцию передается this, которое и само с успехом может хранить цену.
Ответить с цитированием
  #7 (permalink)  
Старый 13.05.2016, 11:58
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

laimas,
В этом коде и все остальное не имеет особого смысла, так что...
Ответить с цитированием
  #8 (permalink)  
Старый 13.05.2016, 13:43
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от Dilettante_Pro
В этом коде и все остальное не имеет особого смысла
Да это я торговцу адресовал, а имеет, не имеет, это уже его головная боль. )
Ответить с цитированием
  #9 (permalink)  
Старый 13.05.2016, 16:08
Профессор
Отправить личное сообщение для Янковиц Посмотреть профиль Найти все сообщения от Янковиц
 
Регистрация: 17.11.2014
Сообщений: 403

Вот так работает:
<a data-id="632" class="buy-now" data-price="XXX" onclick="add(this)">Купить</a>
а так нет
<a data-id="632" class="buy-now" data-price="XXX" onclick="return cart.add(this)">Купить</a>
А в чем разница?
И если data-price="XXX" лучше, как это реализовать?

Последний раз редактировалось Янковиц, 13.05.2016 в 16:52.
Ответить с цитированием
  #10 (permalink)  
Старый 13.05.2016, 18:05
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Зачем вот это data-id="632"? Уж точно это ID товара и используется в скрипте, точно также атрибутом data-price можно передавать с скрипт и цену товара.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Генератор случайных чисел (помогите с задачкой) GentleGoose Общие вопросы Javascript 2 28.07.2014 12:53
НОД более чем 2-х чисел Demath Общие вопросы Javascript 4 06.01.2013 05:27
Опять про округление чисел Kefir Общие вопросы Javascript 3 10.01.2012 15:34
Генератор случайных чисел с возможностью ввода диапазона. Как сделать? Sovereign Общие вопросы Javascript 3 10.06.2011 08:34
Работа с последовательностью натуральных чисел Stillife Общие вопросы Javascript 1 18.05.2011 20:03