我有这个功能,它根据用户的选择生成许多输入:
// Number of inputs to create
var number = document.getElementById("cantidadArreglos").value;
// Container <div> where dynamic content will be placed
var container = document.getElementById("container");
// Clear previous contents of the container
while (container.hasChildNodes()) {
container.removeChild(container.lastChild);
}
for (i=0;i<number;i++){
// Append a node with a random text
container.appendChild(document.createTextNode("Arreglo #" + (i+1)));
// Create an <input> element, set its type and name attributes
var input = document.createElement("input");
input.type = "number";
input.name = "arreglo" + i;
container.appendChild(input);
// Append a line break
container.appendChild(document.createElement("br"));
}
}
它完美无缺。但是,我需要使用用户在其他函数上引入的值。我怎样才能正确地打电话给他们?
答案 0 :(得分:1)
您需要为您正在创建的每个输入控件分配某种标识符(以便稍后引用它们)。一个非常简单的方法是为每个人分配一个id:
for (i=0;i<number;i++) {
// Append a node with a random text
container.appendChild(document.createTextNode("Arreglo #" + (i+1)));
// Create an <input> element, set its type and name attributes
var input = document.createElement("input");
input.type = "number";
input.name = "arreglo" + i;
//assign identifier here
input.id= "arreglo" + i;
container.appendChild(input);
// Append a line break
container.appendChild(document.createElement("br"));
}
然后,在代码的其他地方,您可以使用刚刚创建的索引来引用值:
function getValForId(var id) {
return document.getElementById("arreglo" + id).value;
}
答案 1 :(得分:1)
您可以使用document.querySelectorAll(&#39;输入[type =&#34; number&#34;]&#39;)来检索页面类型编号的所有输入(如果您需要排除)一些,只需添加一个类并将其添加到querySelector)
var inputsNumber = document.querySelectorAll('input[type="number"]');
现在你可以迭代&#39; inputsNumber&#39;并检索值
还可以使用通配符过滤querySelector,以使用以下命令检索名称以单词开头的元素:
document.querySelectorAll('[name^=arreglo]');