为自动创建的变量创建名称

时间:2013-10-14 17:45:57

标签: javascript

在JavaScript中,我有一个for代码段来创建新的输入元素

for(var g = 0; g < psi.length; g++) {
var newtextLink+(g+1)= document.createElement('input');
//continue with setting attributes
}

我希望每次执行newtextLink时,将g和var newtextLink2组合在一起for ...我怎样才能实现这一目标?< / p>

4 个答案:

答案 0 :(得分:5)

这是您通常需要数组的地方:

var newtextLinks = [];
for(var g = 0; g < psi.length; g++)
{
    newtextLinks[g] = document.createElement('input');
}

然后通过索引变量(newtextLink[g]newtextLink[0]等)使用它们。

或者,可能有一些地方(可能不在这里)您确实想要名称。你可以用一个对象来做到这一点:

var newtextLinks = {};
for(var g = 0; g < psi.length; g++)
{
    newtextLinks["name" + (g+1)] = document.createElement('input');
}

现在您有newtextLinks.name1newtextLinks.name2等等。

但为此目的,阵列似乎最好。

答案 1 :(得分:0)

如果您坚持使用变量,可以使用window对象执行此操作:

window['newtextLink' + (g+1)] = document.createElement('input');

否则使用数组:

var newTextLinks = [];

...

newTextLinks[g] = document.createElement('input');

答案 2 :(得分:0)

尝试

this['newtextLink' + (g + 1)] = ...;

答案 3 :(得分:0)

function createVariables(){
  var newtextLink= [];

  for (var i = 0; i <= psi.length; ++i) {
      newtextLink[i] = document.createElement('input');
  }

  return newtextLink;
}

你有newtextLink [0] ... newtextLink [n]

你有类似的问题: JavaScript: Dynamically Creating Variables for Loops