我正在添加输入到某些输入中的数字并获得总数。总计脚本现在可以正常工作,但是如果它们被禁用,我希望不包括要计数的输入。我想我需要使用:not(:disabled)但不确定如何正确地将它放入我的脚本中?
这是一个重要的脚本:
$('.observationPositive').each(function(){
countP++;
sumP += Number($(this).val());
});
如果没有禁用,我该怎么说才算? (错误编码的例子)
$('.observationPositive').each(function(){
countP++;
sumP += Number($(this:not(:disabled)).val());
});
答案 0 :(得分:14)
仅迭代未禁用的那些:
$('.observationPositive:not(:disabled)').each(function() {
// increment count
});
答案 1 :(得分:9)
你的选择器必须是一个字符串:
$(this).is(":not(:disabled)");
这将返回一个布尔值。在不匹配任何元素的jQuery选择器上调用val
将返回undefined
,如果您将undefined
添加到数字,则会获得NaN
。
sumP += $(this).is(":disabled") ? 0 : Number($(this).val());
在您的特定情况下,Jivings' answer会更好。
答案 2 :(得分:1)
将约束添加到主选择器:
$('.observationPositive:not(:disabled)').each(function(){
countP++;
sumP += Number($(this).val());
});
答案 3 :(得分:0)
更简单:
!$(this).is(":disabled");