我正在使用“测验”功能在当前的Rails应用上创建移动版本。目前有一个计数,你已经回答了这个函数生成的问题。
function updateGroupProgressCounter($group){
var count = $group.find('tr').has('input:checked').length;
$group.parents('.carousel').find('.checkedCount').text( count);
}
我正在更改单选按钮的输入以选择移动框,并希望保留计数功能,但目前还不能使其正常工作。我试过了
var count = $group.find('tr').has('select option:selected').length;
但是给了我该组中的问题总数。任何帮助表示赞赏。
答案 0 :(得分:2)
我会根据select change事件在行上切换一个类,然后计算这些行。
$('tr select').change(function(){
$(this).closest('tr').toggleClass('answered', $(this).val()!='' );
});
toggleClass
的第二个参数决定是否添加/删除。
然后获得总行数:
$('tr.answered').length
<强> toggleClass() API Docs 强>
另一种使用filter()
计算select
值
var number_answered=$('tr select').filter(function(){
return $(this).val !='';
}).length
答案 1 :(得分:0)
可能你正在寻找这样的东西:
$("#boxes").on("change","input", function(){
$("#total").val($("#boxes input:checked").length);
});
使用fiddle
答案 2 :(得分:0)
考虑到您的选择列表的第一个元素的值为空(即“”)
所以代码将是
var count = 0;
$group.find('tr select').each(function(){
if(this.value.length)
count++;
});
我知道这不是最好的方法。 根据选择添加和删除类,最后找到包含所需类的元素的长度将是@charlietfl建议的更好的方法。