我有一个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_1
和spcd_2
如何在for循环中正确分配
var theurl=spcd_+i;
任何人都可以向我展示正确的方法。
由于
答案 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放在任何地方,但在函数的开头可能会导致混乱。如果在循环或条件块的开头放置变量声明,迟早会遇到麻烦。