Корзина товаров. В корзине есть несколько карточек товаров - 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);
})
});
});
$(function () {
$(".kol").on("change", function () {
var cartItem = $(this).closest(".korzina-item-wrap");
var price = parseFloat(cartItem.find(".price2").text());
var kol = parseFloat(cartItem.find(".kol").val());
var totalCost = price * kol;
cartItem.find(".stoimost-item").text(totalCost);
});
});
Если возможно - покажи пример html одной карточки. Меня смущает что вы пытаетесь взять value у параграфа...
Если на странице подключен jQuery - попробуйте так:
var price = parseInt($(".price2").text());
без jQuery
var price = parseInt(document.getElementsByClassName("price2")[0].textContent);
Еще я бы посоветовал достать обработку change из функции each, т.к. вы будете биндить по 1 событию для каждого елемента корзины. При 10 итемах у вас на каждом изменении инпута будет 10 раз срабатывать эта функция...
Кусок кода ниже. Что то с получением значение элементов, т.к. если закоммитить, и дать переменным какие то значения - выводится результат. Не коммичу - NAN.