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

使用: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 回答
0

你的语法不正确。

card_value = $(array[i]).val();或者card_value = array[i].value;

array[i] 不是 jQuery 对象(出于某种原因)。

检查浏览器的控制台可能有助于解决此类问题。

于 2012-08-30T22:50:46.820 回答
0

阅读一个array,你也可以利用“ each”的方法jQuery

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

奖励:您还可以通过此方法读取对象。

来源

于 2016-06-03T06:35:57.947 回答