Мороженое. Возвращение. Не проходит проверку.


#1

Здравствуйте, буду благодарен за подсказку, никак не могу понять что не так и почему код не проходит испытания, хотя всё сходится.

var cardsData = [
  {
    inStock: true,
    imgUrl: 'gllacy/choco.jpg',
    text: 'Сливочно-кофейное с кусочками шоколада',
    price: 310,
    isHit: true,
    specialOffer: 'Двойная порция сиропа бесплатно!'
  },
  {
    inStock: false,
    imgUrl: 'gllacy/lemon.jpg',
    text: 'Сливочно-лимонное с карамельной присыпкой',
    price: 125,
    isHit: false
  },
  {
    inStock: true,
    imgUrl: 'gllacy/cowberry.jpg',
    text: 'Сливочное с брусничным джемом',
    price: 170,
    isHit: false
  },
  {
    inStock: true,
    imgUrl: 'gllacy/cookie.jpg',
    text: 'Сливочное с кусочками печенья',
    price: 250,
    isHit: false
  },
  {
    inStock: true,
    imgUrl: 'gllacy/creme-brulee.jpg',
    text: 'Сливочное крем-брюле',
    price: 190,
    isHit: false
  }
];

var makeElement = function(tagName, className, text) {
  
  var element = document.createElement(tagName);
  element.classList.add(className);
  
  if (text) {
    element.textContent = text;  
  }
  
  return element;
  
};

var createCards = function(card) {
  var listItem = makeElement('li', 'good');
  
  var title = makeElement('h2', 'good__description', card.text);
  listItem.appendChild(title);
  
  var picture = makeElement('img', 'good__image');
  picture.src = card.imgUrl;
  picture.alt = 'Сливочное крем-брюле';
  listItem.appendChild(picture);
  
  var price = makeElement('p', 'good__price', card.price + '₽/кг');
  listItem.appendChild(price);
  
  var availabilityClass = 'good--available';
  if (!card.inStock) {
    availabilityClass = 'good--unavailable';
  }
  listItem.classList.add(availabilityClass);
  
  if (card.isHit) {
    listItem.classList.add('good--hit');
    var specialOffer = makeElement('p', 'good__special-offer', card.specialOffer);
    listItem.appendChild(specialOffer);
  }  
  return listItem;  
};

var cardList = document.querySelector('.goods');

var renderCards = function(cardsArray) {
    for (var i = 0; i < cardsArray.length; i++){
      var cardItem = createCards(cardsArray[i]);
      cardList.appendChild(cardItem);
    }
};

renderCards(cardsData);

#2

Попробуйте проинспектировать отображение верстки в образце с помощью инструментов разработчика в браузере и сравнить свою генерируемую разметку с той, что там представлена. Если элементы или атрибуты находятся не в том порядке, то проверка не пропускает такой вариант.


#3

Спасибо за ответ, если я не ошибся, то разметки совпадают.


#4

Вроде бы одинаково. Сравните еще какие-нибудь две карточки ниже, где не добавляется “хит” и “спец. предложение”.


#5

Сравнивал ещё 2 типа, разницы не заметил. Скриншоты привожу ниже. Спасибо!


#6

@juwain, уже всё проверили. Помогите разобраться.


#7

у вас alt картинок не соответствует названиям карточек. в атрибуте alt должно быть то же, что и в названии товара
мы уже обновили тз испытания и явно отобразили это там.
попробуйте поправить alt у картинок и напишите, прошла ли проверка


#8

Да, всё сработало. Спасибо большое! :slight_smile: