日期:2014-05-16  浏览次数:20445 次

js里的后台数组变量的下标如何引用js中定义的变量
JScript code
<script language="JavaScript" type="text/javascript">
   var chushii=0;
    function changepic() {                   //计时器调用的函数
       ss = "tu\\17\\" + "<%=onlyfilename[chushii]%>";  //就是这句怎么写      
        chushii++; 
        if (chushii==<%=filenum%>)
        {clearInterval(timermy); }        
    }
</script>


编译器错误消息: CS0103: 当前上下文中不存在名称“chushii”。

那一句中的onlyfilename是在后台定义的一个数组变量。

------解决方案--------------------
楼主,首先这样是无法实现的.
1).onlyfilename在后台运算好了在抛到前端,就是只能在后台计算.所以我们在前端用onlyfilename[count]是错误的.你只能在onlyfilename[1]写具体的数字.
2).有另外一种方法,可以解决问题,首先在后台把onlyfilename转换成字符串,用逗号隔开,然后在前端接受在转换成js Array.然后就可以直接onlyfilename[count]调用了.
------解决方案--------------------
楼主啊。。。

js是在前台执行的,而java是在后台执行的。
也就是说当你执行<%%>的时候,var chushii=0压根就没有执行,试问又怎么会有chushii这个变量呢?

我建议换种写法:


<script language="JavaScript" type="text/javascript">
var chushii=0;
function changepic() {//计时器调用的函数
var onlyfilenames = [
<%
for(int i = 0 ; i < onlyfilename.length ; i ++){
%>
'<%=onlyfilename[i] %>',
<%
}
%>
''];
ss = "tu\\17\\" + onlyfilenames[chushii]; //就是这句怎么写
chushii++; 
if (chushii==<%=filenum%>)
{clearInterval(timermy); }
}
</script>