jquery:如果ul为空
好吧,我有一个jQuery对话框,其中有一个表格,我在我的智慧结束时试图弄明白…让我看看我是否可以用语言表达我想要做的事情..
我有3个文本框。 #apInterest
顺序排列#apInterest
, #apPayment
和#apPrincipal
。
我想要做的基本英语术语:
#apInterest
keyup如果.val
小于0或大于99.99会触发错误..否则检查ul#mylist
是否有任何li
,如果没有.hide
#apPayment
keyup如果.val
小于0则触发错误,否则检查列表是否隐藏li
hide。
#apPrincipal
与#apPayment
完全相同
我现在拥有的是什么
$('#apInterest').live("keyup", function(e) { var parent = $('.inter').parents("ul:first"); if ($('#apInterest').val() 99.99) { $('.inter').remove(); $('#mylist').append('Interest Rate cannot be below 0 or above 99.99 '); $('#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(); }
对于所有3个文本框我都有类似的function但是我尝试过的function似乎都没有…有关如何完成此操作的任何想法
if ($('#mylist li').length == 0) ...
我喜欢使用children()
方法,因为它读得很好,即使你已经缓存了ul的选择器,它也能正常工作。 这是它的样子:
$myList = $('#myList') if ( $myList.children().length === 0 ) ...
jQuery总是返回一个元素数组。 如果未找到匹配项,则数组将为空。 Javascript中的空数组计算结果为true:
console.log( !![] ); // logs: true
您想检查返回集的长度:
if ( ! $("#mylist li").length ){ $('#popuperrors').hide(); }