Возможно ли?
Дано:
на странице после поиска позиции отображаются по такому принципу - каждая в своем диве с уникальным id из базы. Пример. <div class="tovar" id="41"> <div class="tovar-image"> <img src="/img/b/f1.jpg"> </div> <div class="tovar-name"> Патрик<br> </div> <div class="tovar-inside-and-size"> (гелий, 80х60 см) </div> <div class="tovar-price"> 280 руб/шт </div> <div class="numbers"><span class="minus"></span><input id="41" type="text" value="1" size="3"><span class="plus"></span><span class="check"></span> </div> </div> Необходимо: при нажатии на span class="check" вызывается функция подсчета общей суммы (значение из родительского class="tovar-price" умножается на значение родительского input. Как описать функцию? ) Вопрос номер 2: делать все же подобные вещи лучше на аякс? |
Я обычно играюсь так
echo '<span id="сheck'.$id.'" class="check"></span>' Потом при клике, отделяю сам id. А зная id, можно показывать или обрабатывать как угодно и что угодно. Цитата:
|
Цитата:
Надо взять цену из "tovar-price", умножить на количество из "value", получив тем самым число... но! это все должно быть взято именно из этого div class=tovar с уникальным своим id! |
Ну во первых у вас два элемента с одинаковым id.
<div class="tovar" id="41"> <input id="41" type="text" value="1" size="3"> |
Цитата:
|
<div class="tovar" id="41"> <div class="tovar-image"><img src="/img/b/f1.jpg"></div> <div class="tovar-name">Патрик<br></div> <div class="tovar-inside-and-size">(гелий, 80х60 см)</div> <div class="tovar-price">280 руб/шт</div> <div class="numbers"> <span class="minus"> - </span><input id="41" type="text" value="1" size="3"><span class="plus"> + </span><span class="check">Клик сюда!</span> </div> </div> <div class="tovar" id="42"> <div class="tovar-image"><img src="/img/b/f1.jpg"></div> <div class="tovar-name">Патрик<br></div> <div class="tovar-inside-and-size">(гелий, 80х60 см)</div> <div class="tovar-price">280 руб/шт</div> <div class="numbers"> <span class="minus"> - </span><input id="42" type="text" value="2" size="3"><span class="plus"> + </span><span class="check">Клик сюда!</span> </div> </div> <script> var goods = document.getElementsByClassName('tovar'); for (var i = 0; i < goods.length; i++) { goods[i].getElementsByClassName('check')[0].onclick = (function(thisGood) { return function() { alert(parseFloat(thisGood.getElementsByClassName('tovar-price')[0].innerHTML) * thisGood.getElementsByTagName('input')[0].value); } })(goods[i]) } </script> |
Я покажу в JQuery, потому что в JS я буду полдня писать.. но смысл вы поймёте.
<div class="tovar" id="div41"> <div class="tovar-image"> <img src="/img/b/f1.jpg"> </div> <div class="tovar-name"> Патрик<br> </div> <div class="tovar-inside-and-size"> (гелий, 80х60 см) </div> <div class="tovar-price"><span class="product_price_41"> 280</span> руб/шт </div> <div class="numbers"><span class="minus"></span><input id="product_amount_41" type="text" value="1" size="3"><span class="plus"></span><span id="41" class="check">get totalprice</span> </div> </div> $('.check').click(function(){ var product_id = this.id; var product_amount = $('#product_amount_' + product_id).val(); var product_price = $('#product_price_' + product_id).val(); }); Зная эти величины, теперь можно складывать и вычитать.. на ваш вкус. |
Цитата:
Цитата:
|
:) Согласен, напортачил.
$(".product_price_" + product_id + "") Какая внимательность! )) |
Стопанулся на этапе:
http://jsfiddle.net/Mv6u6/2/ Необходимо чтобы при нажатии на ссылку брались значения ТОЛЬКО из родителельских дивов в их же пределах. Что нужно дописать в код для выполнения этого обязательного условия? ps.Это список товаров в магазине и ссылка будет в будущем формировать общую сумму (кол-во * цену). Соотв, там много таких дивов и получается, надо как-то определять родителя, а потом уже в нем объявлять эти переменные... вот только как это сделать.. уже кажется что все перепробовал. |
Часовой пояс GMT +3, время: 12:27. |