如何在循环中创建新变量?

时间:2017-12-10 13:56:45

标签: javascript for-loop

我有一个表单,我想通过他们的ID来检索这些值。而不是写var itemnamehere = document.getElementById(' theid');多次,我希望能够遍历表单中的输入并在for循环中创建变量。

这是我到目前为止所拥有的

var gsItems = document.getElementsByClassName('gsinput').getAttribute('id');

    for(var i = 0; i < gsItems.length; i++){

        //create new variable here

    }

2 个答案:

答案 0 :(得分:1)

由于.mp4返回节点列表,因此您无法在其上使用getElementsByCLassName,因为该方法仅为单个元素保留。但如果我理解你的问题,你也不需要这个ID。您可以简单地遍历使用getAttribute获得的节点列表,并使用输入执行任何操作,例如获取它们的值。

以下是如何使用ES6进行操作的方法:

&#13;
&#13;
getElementsByCLassName
&#13;
const gsItems = document.getElementsByClassName('gsinput');

[...gsItems].forEach(item => {
  console.log(item.value);
});
&#13;
&#13;
&#13;

如果您想使用ID,可能需要根据值创建ID映射。您可以使用reduce执行类似的操作:

&#13;
&#13;
<input class="gsinput" value="1" />
<input class="gsinput" value="2" />
<input class="gsinput" value="3" />
<input class="gsinput" value="4" />
<input class="gsinput" value="5" />
&#13;
const gsItems = document.getElementsByClassName('gsinput');

const obj = [...gsItems].reduce((obj, item) => {
  obj[item.id] = item.value;
  return obj;
}, {});

console.log(obj);
&#13;
&#13;
&#13;

以下是ES5方法:

&#13;
&#13;
<input class="gsinput" id="steve" value="1" />
<input class="gsinput" id="daisy" value="2" />
<input class="gsinput" id="tina" value="3" />
<input class="gsinput" id="dennis" value="4" />
<input class="gsinput" id="bob" value="5" />
&#13;
const gsItems = document.getElementsByClassName('gsinput');

Array.prototype.forEach.call(gsItems, function (item) {
  console.log(item.value);
});
&#13;
&#13;
&#13;

答案 1 :(得分:0)

在使用循环时,Id不是获取多个表单输入值的完美方法。

function getSubmitValue(params) {
        var formObject = document.theForm;
        var itemnamehere = [];
        if (formObject.length) {
            for (var i = 0; i < formObject.length; i++) {
                if (formObject[i].value !== "") {
                    itemnamehere.push(formObject[i].value);
                }
            }
        } else {
            alert("Please check your form input value")
        } 
    }



<form id="myForm" name="theForm">
    <input type="text" name="user" id="user" value="Arsalan" />
    <input type="text" name="occopation" id="occopation" value="doctor" />
    <input type="number" name="age" id="age" value="27" />
    <input type="text" name="email" id="email" value="johndoe@test.com" />
    <textarea name="message" id="message">Enter Your Message Her</textarea>
    <button type="submit" onClick="getSubmitValue()">Place Order</button>
</form>