js el jstl list 循环

需要在js中获取从Controller传过来的list集合,通过循环遍历找到对应的值,赋值到指定input框中
刚开始做法:

for (var h = 0; h < gradesize; h++) {
    var minValue = "${evaluationGrades[h]}";
    console.log(minValue + "=minValue");
    var maxValue = "${evaluationGrades[h]}";
    console.log(maxValue + "=maxValue");
    if (result >= parseInt(minValue) && result <= parseInt(maxValue)) {
        $("#recommendGrade").val("${evaluationGrades[h].rankName}");
        break;
    }
}
死活获取不到值;
原因:在for循环中使用EL表达式${evaluationGrades[h]}中的h是取不到值的,也就是说EL表达式不可以使用JS中的变量,EL表达式是一个整体。
查询到在js中可以使用jstl:
解决办法
<c:forEach items="${evaluationGrades}" var="grade">
  array.push("${grade}"); //js中可以使用此标签,将EL表达式中的值push到数组中
  console.log("${grade}");
  var minValue = "${grade.gradeMin}";
  console.log(minValue + "=minValue");
  var maxValue = "${grade.gradeMax}";
  console.log(maxValue + "=maxValue");
  if (result >= parseInt(minValue) && result <= parseInt(maxValue)) {
      alert(11);
      $("#recommendGrade").val("${grade.rankName}");
  } else {
      self.top.layer.msg("等级范围不够,请确认等级范围", {time: 2000});
  }
</c:forEach>

 

posted @ 2018-04-13 16:15  岁月淡忘了谁  阅读(948)  评论(0编辑  收藏  举报