首 页   · 站长博客 · 用户注册 · 会员登陆  · 会员排行  ·最新主题  ·最近回复  精华区  版权声明  ·论坛管理
  当前登录身份:游客,请先登录。  笔名: 口令: 验证码:   
楼 主  index »  PHP安装/语法/函数 » [原创]请问JAVASCRIPT里面有没有对"变量的变量"的支持?  


  作者:灿烂季节
  注册时间:2005-04-14
  主题/回复:7/8
  积分:442
  等级:★★☆(五级)
  称号:略有小成

  123@321.net
  未提供
  www.

 

 发表:2005-06-17 17:33:31 阅读 2172 次 回复 4 次 得分1  |   字号 字色
[原创]请问JAVASCRIPT里面有没有对"变量的变量"的支持?
比如一段代码:

<script language="JavaScript">
var content1="显示变量1的内容.";
var content2="显示变量2的内容.";
var content3="显示变量3的内容.>";

function aaa(i){

这里我想实现的是:根据函数参数i的不同(1或2或3),
取相应的变量(content1或content2或content3),对变量进行想要的操作.

alert(aaaa);
}

</script>
<FORM NAME="buttonbar">
 <INPUT TYPE="button" VALUE="显示1" onClick="aaa(1)">
 <INPUT TYPE="button" VALUE="显示2" onClick="aaa(2)">
 <INPUT TYPE="button" VALUE="显示3" onClick="aaa(3)">
</FORM>


请问大家可以实现吗?怎么实现?
 
 1#楼  
 
  回复人:一起PHP
  注册时间:2004-02-27
  主题/回复:247/1521
  积分:4649
  等级:★★★★★☆(十一级)
  称号:论坛圣人

   
 1#楼 发表于2005-06-17 18:51:47  评分:1 

是有的。函数名字好像是 eval(),这个函数可以把js中的一个字符串作为一个表达式运行。比如
var str1,a;
str1="a=1+1*5";
eval(str1);

这样句子执行之后a的值是6。
所以你这个问题就可以这么办:

function aaa(i){
  eval("alert(content"+i+")");
 }

这样,传入1,则在alert中显示content1的内容,如此类推。
eval()函数非常有用。利用这个函数可以实现比较复杂的变量的变量。
 2#楼  
 
  回复人:灿烂季节
  注册时间:2005-04-14
  主题/回复:7/8
  积分:442
  等级:★★☆(五级)
  称号:略有小成

   
 2#楼 发表于2005-06-20 21:08:40  评分:× 

谢谢,我知道了,不过后来我想了想,还是用数组比较方便一点.
 3#楼  
 
  回复人:灿烂季节
  注册时间:2005-04-14
  主题/回复:7/8
  积分:442
  等级:★★☆(五级)
  称号:略有小成

   
 3#楼 发表于2005-06-20 21:16:16  评分:× 

另外还有一个问题,

我在一个页面里面有一个JAVASCRIPT的数组,比如ARR1.

如果ALERT(ARR1);由于JS对于每和数组元素分割的需要,会引入逗号,

也就是说如果 VAR ARR1=(元素,元素,元素),

那么ALERT出来就是:  ,元素,元素,元素    .

现在如果我要把这个数组用隐藏域传给PHP的话,

在PHP端无法用下标来定位使用数组元素了,

因为有上面提到的那个逗号的存在,如果在PHP里用下标的话,

会出现乱七八糟的东西,不知道这有没有办法解决?

我现在只能在JAVASCRIPT页面把数组一个一个拆开来传,

到PHP在一个一个全拼起来,真是痛苦无比~~~
 4#楼  
 
  回复人:一起PHP
  注册时间:2004-02-27
  主题/回复:247/1521
  积分:4649
  等级:★★★★★☆(十一级)
  称号:论坛圣人

   
 4#楼 发表于2005-06-21 00:26:57  评分: 

JS和PHP之间传递变量,本来就是很困难的事情。
往往传递一个字符串都得拐弯抹角,何况传递一整个数组。

在JS里把数组元素按照一定规律拼成一个整句,然后传给PHP再分割成多个元素。这么做是可以的。无非费点功夫。
  页数1/1首页 « 1 » 末页
  发表回复:您还没有登陆,无法发表回复。请先[登陆]

一起PHP技术联盟 主办:一起PHP 联系方式:站长QQ:4304410 QQ群:8423742 20159565 站长博客 E-mail: nqp@nqp.me 执行时间:0.007sec
SimsmaBBS 2008 (v6.0) Developed by 17php.com,Copyright(C)2003-2010 All rights reserved. 副本授权:一起PHP官方专用版