<input name="hello">value1
<input name="hello">value2
<input name="hello">value3
<input name="hello">value4
var a = getElementsByName('hello')
现在,如何创建一个包含 (value1,value2,value3,value4) 的数组?
我想过使用 makeArray,但它只返回对象而不是值。
<input name="hello">value1
<input name="hello">value2
<input name="hello">value3
<input name="hello">value4
var a = getElementsByName('hello')
现在,如何创建一个包含 (value1,value2,value3,value4) 的数组?
我想过使用 makeArray,但它只返回对象而不是值。
你应该这样做: HTML:
<input type="text" id="hello1" value="value1">
<input type="text" id="hello2" value="value2">
<input type="text" id="hello3" value="value3">
<input type="text" id="hello4" value="value4">
JS:
alert('ready?');
var n = 4;
var arr = new Array(n);
for(var i = 0; i < n; i++) {
arr[i] = document.getElementById('hello' + (i+1)).value;
}
alert(arr);
首先,您的 html 应如下所示:
<input name="hello1" value="value1" type="text" />
<input name="hello2" value="value2" type="text" />
<input name="hello3" value="value3" type="text" />
<input name="hello4" value="value4" type="text" />
即,如果您使用文本框,您的名称属性应该不同。否则你无法获得价值。当然,这些值实际上是属性。这是一个纯javascript代码,可以做你想做的事:
var inputs = document.querySelectorAll("input[type='text']");
var result = [];
for(var i=0; field=inputs[i]; i++) {
result.push(field.value);
}
alert(result);
这是一个 jsfiddle 演示示例http://jsfiddle.net/krasimir/nbmjG/
您的输入必须是这样的:Demo
<input name="hello" value="value1">
<input name="hello" value="value2">
<input name="hello" value="value3">
<input name="hello" value="value4">
然后以下将返回值数组:
var arr = Array.prototype.map.call(document.getElementsByName('hello'), function(elem){
return elem.value;
});
您需要使用 []
<input name="hello[]">value1</input>
<input name="hello[]">value2</input>
<input name="hello[]">value3</input>
<input name="hello[]">value4</input>