通过组合字符串和放大器来创建新的JavaScript变量变量

时间:2011-02-12 03:13:28

标签: javascript string variables var

所以这是我的问题。

pageTitle1 = ('This is page one');
pageTitle2 = ('This is page two');
pageTitle3 = ('This is page three');

currentPageTitle = ('pageTitle'+currentPosition);

$("#pageNumber").html(currentPageTitle);

我正在尝试根据我所在幻灯片的currentPosition将当前页面标题显示在屏幕上。我遇到的问题是当我需要它显示“这是第一页”时,上面的代码在屏幕上显示“pageTitle1”。我对javascript很新,所以我觉得这很容易解决,但谷歌搜索的日子并没有给我带来任何好处。

3 个答案:

答案 0 :(得分:5)

使用数组而不是单独命名每个变量。

var pageTitles = [
 'This is page one',
 'This is page two',
 'This is page three'
];

var currentPageTitle = pageTitles[currentPosition];

您的代码无效的原因是因为它只是添加了两个字符串"pageTitle"currentPosition,并将连接的字符串分配给currentPageTitle。您想要的是获取存储在具有该名称的变量中的值。假设您在全局范围内创建这些(这不是一件好事),您可以这样做:

var currentPageTitle = window['pageTitle'+currentPosition];

但是,使用数组是一种更好的方法。

答案 1 :(得分:1)

做这样的事情。

var pageTitle = new Array();
pageTitle.push('This is page one');
pageTitle.push('This is page two');
pageTitle.push('This is page three');

currentPageTitle = (pageTitle[currentPosition]);
$("#pageNumber").html(currentPageTitle);

或者只是使用eval( really super unrecommended

var currentPageTitle = eval('pageTitle'+currentPosition);

答案 2 :(得分:-1)

无需任何其他修改,您可以替换此行

currentPageTitle = ('pageTitle'+currentPosition);

用这个:

currentPageTitle = window['pageTitle'+currentPosition];