|
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 может быть ничего или любое число.
|
|
13.05.2016, 10:37
|
Профессор
|
|
Регистрация: 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.
|
|
13.05.2016, 10:40
|
Профессор
|
|
Регистрация: 17.11.2014
Сообщений: 403
|
|
Это лишь часть кода. Количество и т.д. все уже работает. Осталась только корзина. Здорово, но немного не то. Нужно, чтобы суммировались числа. Кликнул по одной(+100), добавляет в блок summa 100, кликнул по другой (+200), стало в блоке summa 300. И так далее. Извините если неясно выразился.
Последний раз редактировалось Янковиц, 13.05.2016 в 10:52.
|
|
13.05.2016, 11:03
|
Профессор
|
|
Регистрация: 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>
|
|
13.05.2016, 11:05
|
Профессор
|
|
Регистрация: 17.11.2014
Сообщений: 403
|
|
|
|
13.05.2016, 11:39
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,990
|
|
<a data-id="632" class="buy-now" data-price="XXX" onclick="return cart.add(this)">Купить</a>
Зачем тревожить другие элементы, если в функцию передается this, которое и само с успехом может хранить цену.
|
|
13.05.2016, 11:58
|
Профессор
|
|
Регистрация: 27.11.2015
Сообщений: 2,899
|
|
laimas,
В этом коде и все остальное не имеет особого смысла, так что...
|
|
13.05.2016, 13:43
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,990
|
|
Сообщение от Dilettante_Pro
|
В этом коде и все остальное не имеет особого смысла
|
Да это я торговцу адресовал, а имеет, не имеет, это уже его головная боль. )
|
|
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.
|
|
13.05.2016, 18:05
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,990
|
|
Зачем вот это data-id="632"? Уж точно это ID товара и используется в скрипте, точно также атрибутом data-price можно передавать с скрипт и цену товара.
|
|
|
|