首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >jquery:如果ul为空

jquery:如果ul为空
EN

Stack Overflow用户
提问于 2011-08-31 01:27:12
回答 3查看 47.5K关注 0票数 22

好的,我有一个jQuery对话框,里面有一个表单,我正绞尽脑汁试图弄清楚这一点……让我们看看我是否能用语言表达我正在尝试做的事情..

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

我正在尝试做的事情的基本英语术语:

如果.val小于0或大于99.99,则#apInterest中的on keyup将触发错误。否则,检查ul#mylist是否有任何li,如果没有.hide

#apPayment中,如果.val小于0,则触发错误,否则检查列表中是否有li,如果不是,则隐藏。

#apPrincipal#apPayment是完全一样的

此时此刻我所拥有的

代码语言:javascript
复制
$('#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();
    }
}
});

尽管我也试过

代码语言:javascript
复制
if ($("#mylist :not(:contains(li))") ){
$('#popuperrors').hide();
}

我对所有3个文本框都有一个类似的函数,但我尝试过的似乎都不起作用。关于如何完成这项工作有什么想法吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-08-31 01:30:13

代码语言:javascript
复制
if ($('#mylist li').length == 0) ...
票数 66
EN

Stack Overflow用户

发布于 2013-06-05 05:44:50

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

代码语言:javascript
复制
$myList = $('#myList')
if ( $myList.children().length === 0 ) ...
票数 8
EN

Stack Overflow用户

发布于 2011-08-31 01:30:27

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

代码语言:javascript
复制
console.log( !![] ); // logs: true

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

代码语言:javascript
复制
if ( ! $("#mylist li").length ){
   $('#popuperrors').hide();
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7247272

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档