2015-08-22 103 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

現在看看! –