在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>
答案 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.name1
,newtextLinks.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