2014-10-27 3 views
-1

У меня есть интернет-магазин, и с jquery мне нужно проверить, добавляете ли продукт, если он существует в корзине, тогда он должен увеличить количество вместо создания новой строки.Если оператор не работает как он должен

код я использую, чтобы проверить, если он существует в корзине является следующее:

if ($(".store-purchase-list-quantity-plus").attr('part') != SalesNO) 

Если это верно, то следует добавить новую строку. Если его ложь, он должен добавить количество. SalesNO - идентификатор продукта.

Это работает только для первого продукта в корзине, а затем просто добавляет новую строку. Мне кажется, что оператор if проверяет только первый «.store-purchase-list-quantity-plus», даже если их несколько в DOM.

Как изменить мой если заявление так он проверяет все .Складировать-покупки-список-количество-плюс»после того, как (атр = salesNO)

+1

как вы перебираете их? –

+1

Нам нужно увидеть остальную часть кода. – danmullen

+0

Я согласен с @danmullen, что нам нужно увидеть полный код, потому что мы не можем идентифицировать таким образом. мы хотим некоторую рабочую скрипку, где мы можем даже изменить код, а также – Innodel

ответ

1

это точно работает, как должно это просто не так, как вы ожидаете, что работать

от documentation:.

Метод .attr() получает значение атрибута только для элемента в согласованном наборе. Чтобы получить значение для каждого элемента отдельно, используйте конструкцию цикла, такую ​​как метод jQuery .each() или .map().

Есть целый ряд конструкций циклов, доступных в JQuery, хотя с учетом вашей конкретной потребности - выяснить, есть ли элемент, который имеет определенное значение атрибута в наборе соответствующих элементов - использование .filter(), вероятно, является лучшим выбором.

var partExists = $(".store-purchase-list-quantity-plus").filter(function() { 
    return $(this).attr('part') == SalesNO; 
}).length > 0; // there's an element with a part attribute matching SalesNO 
if(partExists) { 
    // increase quantity 
} 
else { 
    // add new entry 
} 
+0

Спасибо! Это именно то, что я искал. – rac

0

, если есть больше ссылок на странице с классом store-purchase-list-quantity-plus, вы будете ... до сих пор только выбрать первый с $(".store-purchase-list-quantity-plus") Сделайте петлю, чтобы проверить все