16

次のような複数の入力フィールドがあります。

<input type="text" name="card[]">
<input type="text" name="card[]">
<input type="text" name="card[]">

ユーザーは必要に応じてこれらのフィールドを追加または削除できるため、フィールドの名前は配列です。配列の長さを取得するには、これでうまくいきます。

var n = $("input[name^= 'card']").length;

配列から値を読み取るにはどうすればよいですか?

私はこれを試しましたが、うまくいきませんでした:

var n = $("input[name^='card']").length;
var array = $("input[name^='card']");
for(i=0;i<n;i++)
{
 card_value=  array[i].val();
 alert(card_value);
}

これもうまくいきませんでした:

var n = $("input[name^='card']").length;

for(i=0;i<n;i++)
{
 card_value=  $("input[name^='card["+i+"]']").val();
 alert(card_value);
}

この配列から値を読み取るにはどうすればよいですか? ヘルプ!

4

7 に答える 7

19

マップ機能を使う

var values = $("input[name^='card']").map(function (idx, ele) {
   return $(ele).val();
}).get();
于 2016-03-29T09:44:03.050 に答える
13

以下を使用する必要があります。

card_value=  array.eq(i).val(); //gets jquery object at index i

また

card_value=  array[i].value; //gets dom element at index i
于 2012-08-30T22:48:07.883 に答える
7

jQueryコレクションには、以下のイテレータが組み込まれています.each

$("input[name^='card']").each(function () {
   console.log($(this).val());
}
于 2012-08-30T22:48:43.610 に答える
0

構文が正しくありません。

card_value = $(array[i]).val();またcard_value = array[i].value;

array [i]は(何らかの理由で)jQueryオブジェクトではありません。

ブラウザのコンソールを確認すると、このような場合に役立ちます。

于 2012-08-30T22:50:46.820 に答える
0

を読むには、次の " " メソッドをarray利用することもできます:eachjQuery

$.each($("input[name^='card']"), function(index, val){
    console.log(index + " : " + val);
});

おまけ: この方法でオブジェクトを読み取ることもできます。

ソース

于 2016-06-03T06:35:57.947 に答える
0

使用: http://jsfiddle.net/xH79d/

var n = $("input[name^='card']").length;
var array = $("input[name^='card']");

for(i=0; i < n; i++) {

   // use .eq() within a jQuery object to navigate it by Index

   card_value = array.eq(i).attr('name'); // I'm assuming you wanted -name-
   // otherwise it'd be .eq(i).val(); (if you wanted the text value)
   alert(card_value);
}

</p>

于 2012-08-30T22:48:31.747 に答える
0

アイテムをループするだけです:

$("input[name^='card']").each(function() {
    console.log($(this).val());
});
于 2012-08-30T22:48:55.620 に答える