@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 раз срабатывать эта функция...
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
summer Ярославль
от 100 000 до 140 000 ₽
КРАФТТЕК Санкт-Петербург
от 60 000 до 80 000 ₽
19 апр. 2024, в 17:06
15000 руб./за проект
19 апр. 2024, в 16:53
1000 руб./за проект
19 апр. 2024, в 16:45
5000 руб./за проект