Подтвердить что ты не робот

Jquery: если ul пусто

Хорошо, у меня есть диалоговое окно jQuery, в котором есть форма, и я нахожусь в своем уме, пытаясь понять это... Давайте посмотрим, смогу ли я вербализовать то, что я пытаюсь сделать.

У меня есть 3 текстовых поля. #apInterest, #apPayment и #apPrincipal в этом точном порядке.

основные английские термины того, что я пытаюсь сделать:

на клавиатуре в #apInterest, если .val меньше 0 или больше 99.99 вызвать ошибку.. else проверить ul#mylist, если у нее есть li, если не .hide

на клавиатуре в #apPayment, если .val меньше 0, инициирует ошибку, еще раз проверьте список для li hide, если нет.

#apPrincipal - это то же самое, что и #apPayment

что я имею право в этот момент

$('#apInterest').live("keyup", function(e) {
var parent = $('.inter').parents("ul:first");
if ($('#apInterest').val() < 0 || $('#apInterest').val() > 99.99) {
    $('.inter').remove();
    $('#mylist').append('<li class="inter">Interest Rate cannot be below 0 or above 99.99</li>');
    $('#popuperrors').show();
    $(this).addClass('error');
} else {
    $(this).removeClass('error');
    $('.inter').remove();
    alert(parent.children().text);
    if (parent.children().length == 0){
        $('#popuperrors').hide();
    }
}
});

Хотя я также пробовал

if ($("#mylist :not(:contains(li))") ){
$('#popuperrors').hide();
}

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

4b9b3361

Ответ 1

if ($('#mylist li').length == 0) ...

Ответ 2

Мне нравится использовать метод children(), потому что он хорошо читается и работает, даже если вы уже кэшировали селектор для своей ul. Вот как это выглядит:

$myList = $('#myList')
if ( $myList.children().length === 0 ) ...

Ответ 3

jQuery всегда возвращает массив элементов. Если совпадений не найдено, массив будет пустым. Пустой массив в Javascript оценивает значение true:

console.log( !![] ); // logs: true

Вы хотите проверить длину возвращаемого набора:

if ( ! $("#mylist li").length ){
   $('#popuperrors').hide();
}