JavaScript中的变量赋值

时间:2009-12-01 05:03:07

标签: javascript variables

我有一个js函数

我想将变量赋给变量

我的变量在forloop中

我有两个变量

即;

var spcd_1= "http://www.colbridge.com";
var spcd_2 = "http://www.google.com";

下面是我的js函数

function openNewWindow(spcd) {
//alert("hello");
var tt = spcd;
alert(tt);
var i=0;
var spcd_1= "http://www.colbridge.com";
var spcd_2 = "http://www.google.com";
for(i=1;i<3;i++)
{
var theurl="'spcd_'+i";
 popupWin = window.open(theurl,
 '_blank',
 'menubar, toolbar, location, directories, status, scrollbars, resizable, dependent, width=640, height=480, left=0, top=0')

}
}

我的问题在这里

var theurl=spcd_+i;

我想将theurl值更改为spcd_1spcd_2

如何在for循环中正确分配

var theurl=spcd_+i;

任何人都可以向我展示正确的方法。

由于

5 个答案:

答案 0 :(得分:6)

我认为你应该把所有的url放在一个数组中,并通过索引循环它。

Javascript不允许您使用字符串来模拟变量名称,因此创建一个数组

var urls = ["link1","link2","link3"]; //Add as many urls you need here

并在for循环中循环

for (var i=0;i<urls.length;i++) {
//logic here
window.open(urls[i], '_blank',
 'menubar, toolbar, location, directories, status, scrollbars, resizable, dependent, width=640, height=480')
//Do your thing
}

答案 1 :(得分:5)

你应该使用一个数组,如下所示:

var urls = [ "http://www.colbridge.com", "http://www.google.com" ];

for(var i = 0; i < urls.length; i++) {
    window.open(urls[i], '_blank',
     'menubar, toolbar, location, directories, status, scrollbars, resizable, dependent, width=640, height=480')
}

您可能还应该阅读一本关于Javascript的书。

答案 2 :(得分:0)

请尝试以下代码段:

var my_var = "spcd_" + i;

答案 3 :(得分:0)

听起来你想索引一个数组,而不是试图连接自己的变量名。这是您的代码修改

function openNewWindow(spcd) {
    //alert("hello");
    var tt = spcd;
    alert(tt);
    var i=0;
    var spcds = [];
    spcds.push("http://www.colbridge.com");
    spcds.push("http://www.google.com");
    for(i=0;i<spcds.length;i++)
    {
        var theurl=spcds[i];
        popupWin = window.open(theurl,
        '_blank',
        'menubar, toolbar, location, directories, status, scrollbars, resizable, dependent, width=640, height=480, left=0, top=0')

    }
}

只是为了咯咯笑,这里是你如何继续使用连接来获取你的变量名。 javascript中的对象也可以是associative arrays,这意味着您可以使用数组语法来创建和检索任意属性

    var spcds = {};
    spcds['spcd_1'] = "http://www.colbridge.com";
    spcds['spcd_2'] = "http://www.google.com";
    //...
    var theurl = spcds['spcd_' + i];

答案 4 :(得分:0)

使用全局变量,您可以

window["theurl_"+i];

因为全局变量是窗口的属性,您可以使用点表示法或括号表示法获取属性。

但不要这样做。 : - )

甚至不尝试做你正在做的事情的一个很好的理由是JavaScript没有块范围,所以将vars放在任何地方,但在函数的开头可能会导致混乱。如果在循环或条件块的开头放置变量声明,迟早会遇到麻烦。