@dikht
начинающий frontend

Скрипт для корзины товаров. В чем ошибка?

Корзина товаров. В корзине есть несколько карточек товаров - div.korzina-item-wrap. У каждой карточки есть цена p.price2, количество этих товаров input.kol и стоимость каждой позиции. Скрипт выдает NAN во всех карточках после того как изменяю количество любого товара. переменным задал числовой тип. В чем ошибка?

$(document).ready(function() {
$(".korzina-item-wrap").each(function() {
$(".kol").change(function(){
var summItem=0, price=0, kol=0;
var price = document.getElementsByClassName("price2").value;
var kol = document.getElementsByClassName("kol").value;
summItem = price * kol;
$(".stoimost-item").text(summItem);
})
});
});
  • Вопрос задан
  • 140 просмотров
Решения вопроса 1
@dikht Автор вопроса
начинающий frontend
<div class="korzina-item-wrap">
        	<div class="item-delete">x</div> 
			<div class="wrap-pic">
            	<div class="korzina-item-pic"> <a href="#" alt=""/> </a></div>
            </div>
            <div class="wrap-naimenovanie">
            	<a href="item-notebook.html">НОУТБУК</a>
            	<p class="price2">2345</p>
            </div>
            <div class="wrap-korzina-kolvo">
				<div class="number">
    				<span class="minus">-</span>
    					<input class="kol" type="text" value="1" size="5"/>
    				<span class="plus">+</span>
				</div>
            </div>
            <div class="wrap-korzina-stoimost"> 
            	<span class="stoimost-item">12341 </span>
            </div>
        </div>
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
OlegMifle
@OlegMifle
php-программист
Если значения переменных price и kol не пустое, используй приведение типов. Полагаю, проблема в этом.
Ответ написан
@TSwizard
Если возможно - покажи пример html одной карточки. Меня смущает что вы пытаетесь взять value у параграфа...
Если на странице подключен jQuery - попробуйте так:
var price = parseInt($(".price2").text());
без jQuery
var price = parseInt(document.getElementsByClassName("price2")[0].textContent);

Еще я бы посоветовал достать обработку change из функции each, т.к. вы будете биндить по 1 событию для каждого елемента корзины. При 10 итемах у вас на каждом изменении инпута будет 10 раз срабатывать эта функция...
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы