添加到javascript中具有指定索引的数组
我是javascript新手,我创建了两个函数,createInput(),它在调用时创建带有名称参数的输入框,并将它们附加到标记,newTwo()它使用两个不同的名称调用createInput()两次 我似乎无法为两个name元素提供索引,并使其在每次调用newTwo()时递增。我需要这个,这样我就可以成对地跟踪字段值添加到javascript中具有指定索引的数组,javascript,Javascript,我是javascript新手,我创建了两个函数,createInput(),它在调用时创建带有名称参数的输入框,并将它们附加到标记,newTwo()它使用两个不同的名称调用createInput()两次 我似乎无法为两个name元素提供索引,并使其在每次调用newTwo()时递增。我需要这个,这样我就可以成对地跟踪字段值 function createInput(name) { var input = document.createElement("input"); inp
function createInput(name)
{
var input = document.createElement("input");
input.setAttribute("type", "text");
input.setAttribute("name", name);
var form = document.getElementById("foobar");
form.appendChild(input);
}
function newTwo()
{
var $i = 0;
createInput("first_name[" + $i + "]");
createInput("last_name[" + $i + "]");
$i++;
}
当我调用newTwo()时,将使用数组索引创建输入字段,如下所示
<input type="text" name="first_name[0]" />
<input type="text" name="last_name[0]" />
如果我再次调用它,接下来的两个字段将是
<input type="text" name="first_name[0]" />
<input type="text" name="last_name[0]" />
上一次第二次调用的期望输出为
<input type="text" name="first_name[1]" />
<input type="text" name="last_name[1]" />
有什么建议吗?提前感谢。因为您有
var$i=0
在函数内部,您正在创建一个新变量,并在每次运行函数时将其初始化为0
。如果要使用在函数调用之间保持其值的变量,则需要在函数外部声明它。例如:
var $i = 0;
function newTwo()
{
createInput("first_name[" + $i + "]");
createInput("last_name[" + $i + "]");
$i++;
}
或者,如果您真的想避免将$i
设置为全局,您可以在其周围创建一个如下的
var newTwo = (function() {
var $i = 0;
return function() {
createInput("first_name[" + $i + "]");
createInput("last_name[" + $i + "]");
$i++;
};
})();
请注意,此版本与以前的版本之间存在细微差异。有关更多详细信息,请参见以下问题:
var$i=0
在函数内部,您正在创建一个新变量,并在每次运行函数时将其初始化为0
。如果要使用在函数调用之间保持其值的变量,则需要在函数外部声明它。例如:
var $i = 0;
function newTwo()
{
createInput("first_name[" + $i + "]");
createInput("last_name[" + $i + "]");
$i++;
}
或者,如果您真的想避免将$i
设置为全局,您可以在其周围创建一个如下的
var newTwo = (function() {
var $i = 0;
return function() {
createInput("first_name[" + $i + "]");
createInput("last_name[" + $i + "]");
$i++;
};
})();
请注意,此版本与以前的版本之间存在细微差异。有关更多详细信息,请参见以下问题: