【问题标题】:Javascript each function works only for the last elementJavascript 每个函数仅适用于最后一个元素
【发布时间】:2020-07-09 10:00:58
【问题描述】:

对于学校支持协会,我必须根据运送的书籍数量(数量限制为 20 个)和 4 个不同的维度来计算费用。

所以我有一个数组应该给我相应的值,问题是基于具有特定类的字段的“每个”循环仅适用于最后一个元素而不是所有类元素。

|-col1-|--col2--|-col3-|--col4--|-col5-|--col6--|-col6--|...


|-dim1-|-number-|-fees-|-number-|-fees-|-number-|-fees--|...

|-dim2-|-number-|-fees-|-number-|-fees-|-number-|-fees--|...

|-dim3-|-number-|-fees-|-number-|-fees-|-number-|-fees--|...

|-dim4-|-number-|-fees-|-number-|-fees-|-number-|-fees--|...

jsfiddle

function calculate(){
$(".dim").each(function(){
    var idn = $(this).attr("id");
    var id = idn.replace("dim", "");
    var dm = $(this).val();
    var nb = $("#num"+id).val();
    for (var i = 0; i < myArray.length; i++) {
        if (myArray[i][0] == dm && myArray[i][1] > nb) {
            $("#result").val(myArray[i][2]);
        }
        if (myArray[i][0] == dm && myArray[i][3] > nb) {
            $("#result").val(myArray[i][4]);
        }
        if (myArray[i][0] == dm && myArray[i][5] > nb) {
            $("#result").val(myArray[i][6]);
        }
        if (myArray[i][0] == dm && myArray[i][7] > nb) {
            $("#result").val(myArray[i][8]);
        }
        if (myArray[i][0] == dm && myArray[i][9] > nb) {
            $("#result").val(myArray[i][10]);
        }
    }
});

}

【问题讨论】:

  • 对不起,问题与“each”功能无关,是冠状病毒流行让我失去了理智,解决问题的方法正是删除“each”功能,感谢 Abhishek 和 Bryan

标签: javascript each


【解决方案1】:

如果我正确阅读了您的描述,我相信这应该符合您的需求。

function calculate(){
  var total = 0
  $(".dim").each(function(){
     var idn = $(this).attr("id");
     var id = idn.replace("dim", "");
     var dm = parseInt($(this).val());
     var nb = parseInt($("#num"+id).val()) -1;
     total += myArray[dm][nb]
  });
  $("#result").val(total);
}

【讨论】:

  • 感谢 Bryan,但选择和输入数字给出了错误的值,我希望循环适用于所有字段集而不是最后一个
【解决方案2】:

由于您没有提到 myArray 包含什么,我认为您应该使用“else if”而不是所有“if”语句。

【讨论】:

  • 感谢 Abhishek,该代码仅适用于最后一个 fledset,我认为“else vs elseif”在这个问题中并不重要
猜你喜欢
  • 2012-03-11
  • 1970-01-01
  • 1970-01-01
  • 2023-01-07
  • 2018-11-25
  • 2019-04-12
  • 2012-01-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多