Здравствуйте!
Подскажите, пожалуйста, как правильно проверить наличие какого-то значения (текста) внутри блока.
Есть блоки div с классом .product-wrapper
(таких блоков много), внутри этого блока, есть старая цена .old-price
. Как сделать так: если у товара нет старой цены, к родителю .product-wrapper
добавлялся бы новый класс, например .new
?
Написал код, но он не работает:
$('.product-wrapper').each(function () {
if ($(this).find('.old-price').val().length) {
$(this).parents('.product-wrapper').addClass("new");
}
});
Структура:
<div class="products-wrapper">
<div class="product-wrapper">
<div class="old-price">2500 руб.</div>
</div>
<div class="product-wrapper">
<div class="old-price">старой цены нет, нужно проверить, что здесь пустота</div>
</div>
<div class="product-wrapper">
<div class="old-price">6750 руб.</div>
</div>
</div>
@jsp, это уже ближе к правде. Надеюсь, что "здесь старой цены нет" - это только для примера, в реальных условиях там пусто.
$('.old-price').each(function(i, el){
if( $.trim( $(el).text() ) == '' ) {
$(el).parent('.product-wrapper').addClass('new');
}
});
Что-то вы явно не то написали, $(this).find('.old-price').val().length вернёт длину значения поля .old-price
А вам, насколько я понял, надо проверять наличие этих полей, точнее их отсутствие.
Значит вам надо использовать !$(this).find('.old-price') или $(this).find('.old-price').length === 0
То бишь вот такой примерно код должен работать:
$('.product-wrapper').each(function () {
if ($(this).find('.old-price').length === 0) {
$(this).parents('.product-wrapper').addClass("new");
}
});
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Всем приветПодскажите, пожалуйста, как можно получить значение input через jquery, но только в нужном блоке