Можно ли через (if else) изменить класс кнопке и ее название?

На странице есть два блока:

<div class="single-goods">
<p class="soh-goods">на складе</p>
<button class="add-to-cart">Купить</button>
</div>

<div class="single-goods">
<p class="soh-goods">нет на складе</p>
<button class="add-to-cart">Купить</button>
</div>

Можно ли сделать некую проверку, чтобы поменять класс и имя кнопки?
Что-то типа такого:

If(если $('.soh-goods') == 'нет на складе') {
                 тогда button class="add-to-cart" присвоить class="add-to-soh"
                 и поменять название кнопки на 'заказать'
}
else{
    в любом другом случае ничего не делать.
}
  • Вопрос задан
  • 293 просмотра
Решения вопроса 3
colonel
@colonel
Разработчик PHP, Laravel
$(document).ready(function(){
    $('.soh-goods').each(function(){
        if ($(this).html() == 'нет на складе') {
           $(this).closest('.single-goods').find('.add-to-cart').removeClass('add-to-cart').addClass('add-to-soh').html('Заказать');
       }
    });
});
Ответ написан
Комментировать
@deworkers
Middle front-end, UI designer
вооще можно. но чем городить огород из jquery лапши не проще на рендере страницы менять текст кнопки?
$('.single-goods').each(function(){
    if( $(this).find('.soh-goods').text() ==  'нет на складе') {
        $(this).find('.add-to-cart').text('заказать')
    }
});
Ответ написан
Комментировать
nikolayshabalin
@nikolayshabalin
Автор профессиональных курсов в HTML Academy
Вы же уже всё сделали
$('.soh-goods').each(function() {
        if ($(this).text() === 'нет на складе') {
            let $button = $(this).next();
            $button.addClass('add-to-soh').text('заказать')
        }
    });
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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