Показать сообщение отдельно
  #2 (permalink)  
Старый 08.08.2017, 12:24
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,795

Сообщение от АнонимныйПарень Посмотреть сообщение
Сама корзина:
function showCart () {
	var out = '';
	for (var w in cart) {
		out += '<span> ID товара: '+ w +'</span> <br>'+'<span> Кол-во товара: '+ cart[w] +'</span> <br> <span> Название:  '+ cart[w].name +' <br> <br>';
	}
	$('#my-cart').html(out);
};


Вопрос: почему имя undefined?
Почему список товаров сразу на страницу не вывести (Ну или не вывести на страницу данные о товарах в JSON, если сервер этого не может сделать)?

Почему в качестве контейнера для товаров в корзине решено юзать localStorage?
Что, если я запрещу сайту юзать моё локальное хранилище?

Сообщение от АнонимныйПарень Посмотреть сообщение
Вопрос: почему имя undefined?
Честно сказать, код особо сильно не разглядывал, однако процитированный код показался мне крайне интересным.
Конструкция, которую ты используешь для перебора списка корзины («for(var i in list)») перебирает не только свойства этого объекта, но и все его унаследованные свойства.
Т.е. при переборе ты можешь получишь не только данные о товаре.
https://learn.javascript.ru/prototype

Далее, кол-во товаров это объект «cart» с ключом «w» («cart[w]»), значит «cart[w]» это число.
Что ты ожидаешь увидеть, если далее по коду пытаешься прочитать свойство «name» у числа?

Последний раз редактировалось Nexus, 08.08.2017 в 12:33. Причина: upd.
Ответить с цитированием