-1
<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 を使用することを考えましたが、値ではなくオブジェクトだけを返します。

4

5 に答える 5

0

それらを反復するか、マップを使用できます。

var items = Array.prototype.map.call(a, function(el){
    return el.nextSibling.textContent;
});

デモ


var items = [];
for (var i=0; i<a.length; i++) {
    items.push(a[i].nextSibling.textContent);
}

デモ

于 2013-08-20T06:52:36.553 に答える
0

入力は次のようにする必要があります: 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;
});
于 2013-08-20T07:04:52.420 に答える
0

まず、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" />

つまり、テキスト ボックスを使用している場合、name 属性は異なる必要があります。そうしないと、値を取得できません。もちろん、値は実際には属性です。これは、あなたが望むことを行うことができる純粋な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/

于 2013-08-20T06:57:21.923 に答える
-1

[] を使用する必要があります

<input name="hello[]">value1</input>
<input name="hello[]">value2</input>
<input name="hello[]">value3</input>
<input name="hello[]">value4</input>
于 2013-08-20T06:49:15.933 に答える