【问题标题】:Making a snippet more efficient使片段更高效
【发布时间】:2015-08-22 09:44:56
【问题描述】:

所以...我在这里有这段代码,我正在使用它来进行测验,我想知道我是否可以使它更有效...最重要的是,如果可能的话,我希望代码更短。如果你有什么建议请告诉我!

$("#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++;
            }

         });

【问题讨论】:

  • 所以你的代码 sn-ps 之间的唯一区别是 question 之后的数字。尝试使用 for 循环并循环 8 次?

标签: jquery performance


【解决方案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,因为我们的案例变量需要数字

【讨论】:

猜你喜欢
  • 2019-07-28
  • 1970-01-01
  • 1970-01-01
  • 2020-05-12
  • 2023-01-14
  • 1970-01-01
  • 2018-08-31
  • 1970-01-01
  • 2015-08-31
相关资源
最近更新 更多