2015-08-22 70 views
0

所以...我在这里有这个代码,我正在使用一个测验,我想知道如果我可以使它更有效率...所有我希望代码缩短如果可能。如果你有一些建议,请告诉我!使片段效率更高

$("#done").click(function(){ 
      var c1 = 0,c2 = 0,c3 = 0; 
      switch ($("input[name='question1']:checked").val()){ 
       case 1: c1++; 
       break; 
       case 2: c2++; 
       break; 
       case 3: c3++; 
      } 

      //repeats 6 times with the number of the question incremented every time 
      switch ($("input[name='question8']:checked").val()){ 
       case 1: c1++; 
       break; 
       case 2: c2++; 
       break; 
       case 3: c3++; 
      } 

     }); 
+0

因此,您的代码片段之间的唯一区别是* question *之后的数字。尝试使用for循环和循环8次? –

回答

1

你总是可以遍历所有的问题与$.each()和你输入名称是基于^(始于字)问题中选择了

$("#done").click(function(){ 
    var c1 = 0,c2 = 0,c3 = 0; 
    $('input[name^=question]:checked').each(function(){ 
     switch(parseInt($(this).val())){ 
      case 1: c1++;break; 
      case 2: c2++;break; 
      case 3: c3++;break; 
     } 
    }); 
    console.log(c1 + " " + c2 + " " + c3); 
}); 

编辑2:添加了parseInt函数,因为我们的情况varaiables期待号码

+0

http://codepen.io/anon/pen/pJXBWe-每次在每个问题中搜索问题时都应该记录日志,但它不起作用,您能告诉我如何解决问题吗? –

+0

你也可以发布HTML中的笔 – joyBlanks

+0

现在看看! –