如何从JS函数中获取动态值

时间:2017-08-28 19:46:09

标签: javascript

我有这个功能,它根据用户的选择生成许多输入:

        // 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"));

  }
  }

它完美无缺。但是,我需要使用用户在其他函数上引入的值。我怎样才能正确地打电话给他们?

2 个答案:

答案 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]');