如何将JavaScript / jQuery脚本转换为循环

时间:2018-04-25 18:40:19

标签: javascript jquery

我是JavaScript和jQuery的新手(提前抱歉)。我试图将下面的脚本转换为循环。任何建议都会很棒。我想设置第一个变量" flag1"循环1-5并在数组(arr1)循环中间数字1-5而不是写5组。

<script type="text/javascript">
{
  var flag1 = ^f('flaghigh_1').get()^;
  var arr1=['#QE1_1_1','#QE1_1_2','#QE1_1_7','#QE1_1_99'];

  for(var i=0;i<arr1.length;i++)
  {
        if(flag1 == '1') 
        { $(arr1[i]).parent().addClass("confirmit-cellerror"); }
        else
        { $(arr1[i]).parent().removeClass("confirmit-cellerror"); }
}}
</script>


<script type="text/javascript">
{
  var flag2 = ^f('flaghigh_2').get()^;
  var arr1=['#QE1_2_1','#QE1_2_2','#QE1_2_7','#QE1_2_99'];

  for(var i=0;i<arr1.length;i++)
  {
        if(flag2 == '1') 
        { $(arr1[i]).parent().addClass("confirmit-cellerror"); }
        else
        { $(arr1[i]).parent().removeClass("confirmit-cellerror"); }
}}
</script>
<script type="text/javascript">
{
  var flag3 = ^f('flaghigh_3').get()^;
  var arr1=['#QE1_3_1','#QE1_3_2','#QE1_3_7','#QE1_3_99'];

  for(var i=0;i<arr1.length;i++)
  {
        if(flag3 == '1') 
        { $(arr1[i]).parent().addClass("confirmit-cellerror"); }
        else
        { $(arr1[i]).parent().removeClass("confirmit-cellerror"); }
}}
</script>
<script type="text/javascript">
{
  var flag4 = ^f('flaghigh_4').get()^;
  var arr1=['#QE1_4_1','#QE1_4_2','#QE1_4_7','#QE1_4_99'];

  for(var i=0;i<arr1.length;i++)
  {
        if(flag4 == '1') 
        { $(arr1[i]).parent().addClass("confirmit-cellerror"); }
        else
        { $(arr1[i]).parent().removeClass("confirmit-cellerror"); }
}}
</script>

1 个答案:

答案 0 :(得分:0)

你是说这个?:

 for(const n of [1, 2, 3, 4]) {
   const flag = f(`flaghigh_${n}`).get();
   const arr = [`#QE1_${n}_1`, `#QE1_${n}_2`, `#QE1_${n}_7`, `#QE1_¢{n}_99`];

   for(const el of arr) {
     if(flag === '1') { 
        $(el).parent().addClass("confirmit-cellerror"); 
     } else { 
        $(el).parent().removeClass("confirmit-cellerror"); 
     }
   }
 }

这使用简单的for..of循环和模板文字。