中易网

在JS中如何遍历一个EL表达式的集合

答案:4  悬赏:80  
解决时间 2021-01-17 10:26
  • 提问者网友:最爱你的唇
  • 2021-01-16 10:13
在JS中如何遍历一个EL表达式的集合
最佳答案
  • 二级知识专家网友:第四晚心情
  • 2021-01-16 11:15
el表达式生效的时候javascript代码还全都是文本 等javascript生效的时候早就没了el表达式了
如果想用javascript来使用el表达式的值只能用这种方法
function initSit()
{
var a = ${costList[i].num};

}
比如说${costList[i].num}这个的值是10

这个在生成html网页的时候上边的方法就变成了
function initSit()
{
var a = 10;
}
你就安装这个思路解决就行了追问function initSit()
{
for(var i=0;i<${fn:length(costList)};i++)
{
var a=${costList[0].num}
alert(a);

}
}
然后输出 alert(a);
的出来全是undefined

但是很奇怪
function initSit()
{
var a=${costList[0].num}
alert(a);
for(var i=0;i<${fn:length(costList)};i++)
{

}
}
放在外面直接输出第一个值就能得到。追答不是和你说了嘛 等到浏览器的时候已经不存在el表达式了
jsp和js就是不在一个平面上的东西 它们之间没有任何交叉点(就算使用ajax看起来它们好像有交集不过实际上它们从本质上还是没有任何关系)

如果你一定要用el表达式的话那就必须用c: foreach 这个没有任何商量的余地
简单一点的话还是直接用脚本把 .....你上边的例子用脚本的话大体可以这样写
由于js没有list所以只能把值存到数组里

function initSit()
{
var list1 = new Array(
<%
//使用java脚本来输出数字
//不知道你的costList是数组还是List.我就按数组写了
out.print(costList[0]);
//这里这么写很重要...只有这样才能个js的 Array对象正确赋值
for(int i=1; i<=costList.length; i++)
{
out.print(",");
out.print(costList[i]);
}
//java脚本部分结束
%>
//这里是属于js的部分
var i=0;
for(;i{
alert(list1[i]);

}

)
全部回答
  • 1楼网友:玩世
  • 2021-01-16 13:54
c: foreach 语句
  • 2楼网友:刀戟声无边
  • 2021-01-16 13:41
JS中你想用el表达式??是jsp中吧??追问是JS中 foreach 不大好做,JS如果能实现比较简单
  • 3楼网友:荒野風
  • 2021-01-16 12:45
js中遍历el表达式的集合还真没用到过,用2楼的方法试试看
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息