Задать вопрос
@ligisayan

Почему перезаписываются данные только первого элемента?

Всем привет. Есть магазин с товарными секциями - пример в коде. При добавлении товара в корзину происходит пересчет количества товара и его суммы. Для одного товара все считает хорошо, но как только добавляю второй со своими данными - корзина перезаписывает данные только первого, т.е. в итоговой сумме получается цена одного первого продукта, несмотря на то, что в корзине их больше. Вопрос по сохранению данных корзины и их последующему извлечению. Сохраняю данные в массиве, прохожусь по всем элементам с помощью each но что-то не получается правильно перезаписать.. Условие
if ($(this).find('a').attr('href') == product_name) {..}
как я понял срабатывает для всех товаров в корзине или я не прав?
$('.add_to_cart_button').click(function() {
	  var number = $(this).parents('.product-frame ').find(".input-text.qty.text").val();
	  var product_name = $(this).parents('.product-frame ').find('.product-section h3 a').attr('href');
	  $('body').bind('added_to_cart', function() {
	    var arr = [];
	    $('#shopping-button .cart_list li').each(function(i) {
	      arr[i] = $(this).find("span.quantity").text().match(/\d+(?:\.\d+)?/g);
	      if ($(this).find('a').attr('href') == product_name) {
	        var html = $(this).find("span.quantity").html();
	        html = html.replace(/\d+/, number);
	        $(this).find("span.quantity").html(html);
	        var quantity = $(this).find("span.quantity").text().match(/\d+(?:\.\d+)?/g);
	        var basePrice = "";
	        for (var i = 1; i < quantity.length; i++) {
	          basePrice += quantity[i];
	        }
	        $(this).parents('#shopping-button').find(".shopping-button .amount").text((basePrice * number) + " руб.");
	      }
	    });
	    console.log(arr);
	  });
	});

<!-- Добавление товара в корзину -->
<div class="product-frame ">
  <div class="content-description">
    <div class="product-section">
      <h3><a href="#">Товар 1</a></h3>
      <table class="description-table">
        <tbody>
          <tr>
            <td class="product-quantity">
              <div class="quantity buttons_added">
                <input type="number" step="1" min="1" max="27" id="num_count" name="quantity" value="1" title="Кол." class="input-text qty text" size="4">
                <input type="button" value="+1" id="button_plus" class="plus">
                <input type="button" value="-1" id="button_minus" class="minus">
              </div>
            </td>
          </tr>
        </tbody>
      </table>
    </div>
  </div>
  <div class="process-section">
    <div class="price"><span class="amount" baseprice="360000">1.080.000 руб.</span>
    </div>
    <a href="#" rel="nofollow" data-product_id="3295" data-quantity="1" class="button add_to_cart_button">Купить</a> 
  </div>
</div>

<!-- Сама корзина -->
<li id="shopping-button">
  <ul class="cart_list ">
    <li>
      <a href="#">
        <img width="60" height="60" src="#" class="attachment-60x60 wp-post-image" alt="item-1">
      </a>
      <div class="product-text">
        <div class="product-name">Товар 1</div>
        <span class="quantity">3 × <span class="amount">360.000&nbsp;руб.</span></span>
      </div>
    </li>
    <li>
      <a href="#">
        <img width="60" height="60" src="#" class="attachment-60x60 wp-post-image" alt="item-2">
      </a>
      <div class="product-text">
        <div class="product-name">тОВАР 2</div>
        <span class="quantity">3 × <span class="amount">150.000&nbsp;руб.</span></span>
      </div>
    </li>
  </ul>
  <!-- end product list -->
</li>
  • Вопрос задан
  • 225 просмотров
Подписаться 1 Оценить Комментировать
Решения вопроса 1
@ligisayan Автор вопроса
проблема решена - объявление массива было лишним
arr[]
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы