好吧,我有一个jQuery对话框,其中有一个表单,我在我的智慧结束时试图解决这个问题......让我们看看我是否可以用语言表达我想要做的事情。
我有3个文本框。 1}},#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个文本框都有类似的功能,但我尝试过的功能似乎都不起作用..关于如何完成此任务的任何想法
答案 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();
}