0

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

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

我想把单词newtextLink和 var放在一起,让每次执行g都像这样……我怎样才能做到这一点?newtextLink2for

4

4 回答 4

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.name1, newtextLinks.name2, 等等。

但出于这个目的,数组似乎是最好的。

于 2013-10-14T17:48:13.047 回答
0

如果你坚持使用变量,你可以使用window对象来做到这一点:

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

否则使用数组:

var newTextLinks = [];

...

newTextLinks[g] = document.createElement('input');
于 2013-10-14T17:48:05.180 回答
0

尝试

this['newtextLink' + (g + 1)] = ...;
于 2013-10-14T17:49:29.547 回答
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:为循环动态创建变量

于 2013-10-14T17:50:15.893 回答