u82367892 2008-11-01 08:12
浏览 142
已采纳

关于JavaScript字符串${连接的一个疑问

[code="js"]for(var i=0;i<arr.length;i++){
var str = "${asize"+i+"}";
}[/code]
这个运行有错误,哪个高手给解决一下,实在是不知道怎么解决了
补充一下
[code="js"]for(var i=0;i<arr.length;i++){
var str = "$"+"{asize"+i+"}";
}[/code]
这样就可以运行了,但是我希望让str为一个标签的value,这样组合出来应该是${asize1}之类的,这样可以取到asize1的值,但是value直接输出的成${asize1},如果直接给把str设置成${asize1},就是正常的,愁啊

  • 写回答

2条回答 默认 最新

  • iteye_17163 2008-11-01 14:20
    关注

    楼主对于JSP的理解不够深啊。
    在JSP运行过程中,javascript和html只是相当于[b]一段文本[/b],根本没有起到任何作用,这时候执行的,只是Java或者${}之类的服务器端执行的代码。当JSP最终生成一个html页面并显示在客户端时,Javascript才会开始作用,但那个时候"${}"里面的内容已经执行完了。所以你无法再用Javascript来控制${}输出什么。

    楼主可以用这种类似的形式进行处理。
    [code="java"]

    <%for(var i=0;i<10;i++){%> var asize${i}=${i};//利用Java代码动态生成10个Javascript变量:asize0到asize10; <%}%> for(var i=0;i<10;i++){ var str=eval("asize"+i);//eval方法是Javascript的方法,用于在Javascript运行时动态招待其中的代码并返回值。 alert(str); }

    [/code]
    先将服务器端的值赋给Javascript变量,然后再由Javascript在运行时输出。
    电脑上没有Tomcat,没办法测试。代码是手写的,可能会有错误。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?