Показать сообщение отдельно
  #14 (permalink)  
Старый 05.11.2019, 16:29
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от sty-wolf
получается вот это нужно загнать в цикл?
Зачем? Когда выбирается/удаляется товар, вот тогда требуется определить класс/текст кнопке. А страница загружается с кнопками по умолчанию, то есть с не выбранными, следовательно нужно только добавить класс/текст для тех, товары которых есть в корзине.

Вы бы вместо картинок html код кнопки выставили, и структуру корзины описали, достаточно было бы пути в ней к товарам.

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

Например, пусть условно корзина cart всегда на странице и под свойством products содержит объект с товарами, в котором первичные свойства это их идентификаторы. Тогда:

var cart = {
    products: {
        '23': {
            name: 'name',
            count: 2
        },
        '67': {
            name: 'name',
            count: 2
        }
    }
};

var ids = Object.keys(cart.products); //получить идентификаторы товаров

if(ids.length) { //если есть товары в корзине
    ids.forEach((id) => {
        $('span[data-sb-id-button='+id+']').text('Удалить из корзины').closest('button').addClass('button-active') //пометить кнопку товара
    })
}


Если товары, это массив объектов, в которых есть свойство содержащее идентификатор товара, то выбор несколько иной будет.
Ответить с цитированием