今天碰到一个问题,如下:
<c:forEach items="${ownVo.vacationResultList}" var="vo">
<tr>
<td><div align="center">${vo.attendanceYear}</div></td>
<td><div align="center">${vo.vacationTypeView}</div></td>
<td><div align="center">${vo.vacationCount }</div></td>
</tr>
</c:forEach>
现在我想把${vo.vacationCount }进行格式化下,就是以“0.00”的方式显示,但要格式化必须得调用js函数,函数返回值无法直接展示在所在的div中,这时就要用到<c:forEach>的varStatus属性,这样可以知道循环的下标,可以用下面方法来实现:
<script type="text/javascript">
function toDecimal2(id,x) {
var f = parseFloat(x);
if (isNaN(f)) {
return false;
}
var f = Math.round(x*100)/100;
var s = f.toString();
var rs = s.indexOf('.');
if (rs < 0) {
rs = s.length;
s += '.';
}
while (s.length <= rs + 2) {
s += '0';
}
$("#" +id).html(s);
return s;
}
</script>
<c:forEach items="${ownVo.vacationResultList}" var="vo" varStatus="status">
<tr>
<td><div align="center">${vo.attendanceYear}</div></td>
<td><div align="center">${vo.vacationTypeView}</div></td>
<td><div align="center" id="${status.index + 1}">
<script type="text/javascript">toDecimal2("${status.index + 1}","${vo.vacationCount }")</script></div>
</td>
</tr></c:forEach>
就是给div一个id,每次循环把返回值直接赋给div.