Почему числа не складываются?

Есть код который по нажатию должен в корзине проходить по товарам и подсчитывать их стоимость
$('.add-item').click(function () {
		var price = $(this).parent().find('.price').text();
		$('.cart-window ul').append($('<div class="item">123 <span>'+price+'</span></div>'));
		var sum = 0; //начальная сумма корзины
		$('.cart-window ul').each(function () { // проходимся по товарам
			var price_item = $(this).find('.item span').text(); //узнаём цену товара
			console.log(typeof(sum)); // для отладки
			console.log(typeof(price_item)); // для отладки
			price_item = parseInt(price_item); //переводим строку в число
			console.log(typeof(price_item)); // для отладки
			sum += price_item; //считываем сумму товаров
			console.log(sum);  // для отладки
		});
		$('.cart-window .amount').text(sum); //выводим сумму заказа
	});

Не могу понять почему они нормально не складываються, sum это число price_item тоже перегоняется в число
а сумма будто после сложения строк
Скрин из конслои
5a90a6a335fdf659905094.jpeg
  • Вопрос задан
  • 146 просмотров
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
Замените $('.cart-window ul').each на $('.cart-window ul .item').each, а $(this).find('.item span').text() замените на $(this).find('span').text().

А то сейчас вместо того, чтобы перебирать .item'ы, вы обрабатываете сразу весь список, разом получая содержимое всех .item span'ов - естественно, строки склеиваются.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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