jquery:如果ul为空

时间:2011-08-30 17:27:12

标签: jquery jquery-ui-dialog html-lists

好吧,我有一个jQuery对话框,其中有一个表单,我在我的智慧结束时试图解决这个问题......让我们看看我是否可以用语言表达我想要做的事情。

我有3个文本框。 #apInterest和#apPayment按照确切的顺序。

我想要做的基本英语术语:

如果#apPrincipal小于0或大于99.99,则#apInterest中的键盘上的

会触发错误..否则检查.val是否有ul#mylist,如果不是li { {1}}

.hide如果#apPayment小于0,则触发错误,如果没有,请检查.val隐藏列表。

li#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();
    }
}
});

我为所有3个文本框都有类似的功能,但我尝试过的功能似乎都不起作用..关于如何完成此任务的任何想法

3 个答案:

答案 0 :(得分:56)

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

答案 1 :(得分:5)

我喜欢使用children()方法,因为它读得很好并且即使您已经缓存了ul的选择器也能正常工作。这是它的样子:

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

答案 2 :(得分:3)

jQuery总是返回一个元素数组。如果未找到匹配项,则数组将为空。 Javascript中的空数组的计算结果为true:

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

您想要检查返回集的长度:

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