Как написать проверку if на jQuery?

Доброго дня
Помогите пожалуйста разобраться и прошу прощения за ересь в примере ниже

Нужна проверка, если div.star-rating НЕ имеет вложенных элементов, то нужно добавить в div.star-rating-wrap div.empty

Если div.star-rating ИМЕЕТ вложенные элементы, то не делать ничего!

Код ниже не работает так как нужно, он добавляет div.empty, но при этом удаляет div.star-rating если он есть.
Спасибо!

$('div.star-rating').has(function() {
    if($('div.star-rating-wrap:empty')) {
        $('div.star-rating-wrap').html('<div class="empty"></div>');
    }else{
        return false;
    }
});
  • Вопрос задан
  • 393 просмотра
Решения вопроса 3
In4in
@In4in
°•× JavaScript Developer ^_^ ו°
$('.star-rating-wrap').has('.star-rating:empty')
   .append('<div class="empty" />');
Ответ написан
Комментировать
@rakro
append() вместо html() чтобы не удалял
Ответ написан
@mletov
....
if ($(".star-rating").children().length==0)
{
     $('div.star-rating-wrap').append('<div class="empty"></div>');
}
...
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
dima_horror
@dima_horror
if ($('div.star-rating').is(":empty")) {
            $('div.star-rating-wrap').append(
                $("<div/>").addClass('empty')
            );
        };
Ответ написан
Комментировать
@chirskiy_mixail
Очень давно занимаюсь версткой, имею огромный опыт
if (!$('.star-rating').is(':empty')) {
    $('div.star-rating-wrap').append('<div class="empty"></div>');
}

Как то так?

Странный у вас подход конечно, зачем пустой див добавлять, не проще добавить класс, от которого и с CSS проще работать и разметку не засорять пустым div.
Ответ написан
@AndreyBLG Автор вопроса
html этого вопроса
Т.е. в этом случае div.empty НЕ должен добавляться, т.к. div.star-rating-wrap содержит div.star-rating
<div class="star-rating-wrap">
    <div class="star-rating">
        <span>1111</span>
    </div>
    <div class="empty"></div>
</div>
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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