1
$(".cartProduct").each(function() {
    var priceOfProduct = $(this).children(".priceOfProduct").text();
    var numberOfProductCart=1;
    $(this).children(".sumPriceOfProduct").text(numberOfProductCart*priceOfProduct);
    $(this).find('.shest').keyup(function() {
        numberOfProductCart = $(this).val();
        $(".sumPriceOfProduct").text(numberOfProductCart*priceOfProduct);
    });
});

Класс sumPriceOfProduct является дочерним от cartProduct, которых бесконечное количество штук. Нужно чтобы sumPriceOfProduct изменялся в каждом cartProduct независимо, думал тут поможет this, но при this он обращается к анонимной функции при событии keyup,а нужно чтобы к cartProduct.

Mihanik71
  • 3,707
Qop Op
  • 27

1 Answers1

0

Callback, который передается в each вызывается с 2 параметрами — ключ(номер) и значение. Можете использовать их или сохранить this в какую либо переменную — например self

 $(".cartProduct").each(function(i, el) { 
    var self = this;
    var priceOfProduct = $(el).children(".priceOfProduct").text();
    var numberOfProductCart=1;
    $(el).children(".sumPriceOfProduct").text(numberOfProductCart*priceOfProduct);
    $(el).find('.shest').keyup(function() {
        numberOfProductCart = $(this).val();
        $(el).children(".sumPriceOfProduct").text(numberOfProductCart*priceOfProduct);
    });
});
Mihanik71
  • 3,707
  • Теперь выдает ноль,а должен выдавать количество товаров умноженное на его цену ,раньше выводилось и то и то,просто мне нужно событие ,которое их умножит . – Qop Op Aug 12 '16 at 19:56
  • Да и вот в том варианте ,который я выложил все происходит верно,но для всех sumPriceOfProduct сразу. – Qop Op Aug 12 '16 at 19:58
  • @QopOp Поправил – Mihanik71 Aug 12 '16 at 20:01