好的,我有一个jQuery对话框,里面有一个表单,我正绞尽脑汁试图弄清楚这一点……让我们看看我是否能用语言表达我正在尝试做的事情..
我有3个文本框。#apInterest
,#apPayment
和#apPrincipal
的确切顺序。
我正在尝试做的事情的基本英语术语:
如果.val
小于0或大于99.99,则#apInterest
中的on keyup将触发错误。否则,检查ul#mylist
是否有任何li
,如果没有.hide
在#apPayment
中,如果.val
小于0,则触发错误,否则检查列表中是否有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();
}
}
});
尽管我也试过
if ($("#mylist :not(:contains(li))") ){
$('#popuperrors').hide();
}
我对所有3个文本框都有一个类似的函数,但我尝试过的似乎都不起作用。关于如何完成这项工作有什么想法吗?
发布于 2011-08-31 01:30:13
if ($('#mylist li').length == 0) ...
发布于 2013-06-05 05:44:50
我喜欢使用children()
方法,因为它读起来很好,而且即使您已经缓存了ul的选择器,它也可以正常工作。它看起来是这样的:
$myList = $('#myList')
if ( $myList.children().length === 0 ) ...
发布于 2011-08-31 01:30:27
jQuery总是返回一个元素数组。如果未找到匹配项,则数组将为空。Javascript中的空数组计算结果为true:
console.log( !![] ); // logs: true
您想要检查返回集合的长度:
if ( ! $("#mylist li").length ){
$('#popuperrors').hide();
}
https://stackoverflow.com/questions/7247272
复制相似问题