我有一个表单,我想通过他们的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
}
答案 0 :(得分:1)
由于.mp4
返回节点列表,因此您无法在其上使用getElementsByCLassName
,因为该方法仅为单个元素保留。但如果我理解你的问题,你也不需要这个ID。您可以简单地遍历使用getAttribute
获得的节点列表,并使用输入执行任何操作,例如获取它们的值。
以下是如何使用ES6进行操作的方法:
getElementsByCLassName
&#13;
const gsItems = document.getElementsByClassName('gsinput');
[...gsItems].forEach(item => {
console.log(item.value);
});
&#13;
如果您想使用ID,可能需要根据值创建ID映射。您可以使用reduce
执行类似的操作:
<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;
以下是ES5方法:
<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;
答案 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>