虽然我正在尝试计算出数组的长度:
$('input:checkbox[name="promoOn[]"]').click( function(){
var attributes = [];
$('input:checkbox[name="promoOn[]"]:checked').each(function(index) {
attributes.push($(this).val());
$('#promo-on-total').html(attributes.length);
});
});
由于某种原因,array.length不会返回0? 结果如下:
Checkbox 1, checked = array.length = 1
Checkbox 2, checked = array.length = 2
Checkbox 2, unchecked = array.length = 2
Checkbox 1, unchecked = array.length = 1 (not 0???)
任何想法可能出错?
答案 0 :(得分:1)
问题是你正在运行所有选中的复选框并更新promo-on-total
div中的长度值,但是一旦取消选中所有复选框,循环就不再执行了(因此值不会更新)。
这将为您提供您的预期:
$('input:checkbox[name="promoOn[]"]').click( function(){
var checkedValues = [];
$('input:checkbox[name="promoOn[]"]:checked').each(function(index) {
checkedValues.push($(this).val());
});
$('#promo-on-total').html(checkedValues.length);
});