如何使用jQuery从数组中的元素中检索值?

Posted

技术标签:

【中文标题】如何使用jQuery从数组中的元素中检索值?【英文标题】:How to retrieve value from elements in array using jQuery? 【发布时间】:2012-08-25 18:12:54 【问题描述】:

我有多个这样的输入字段:

<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);

如何从这个数组中读取值? 救命!

【问题讨论】:

请详细说明一下,你想读取什么值,用户在input中实际输入的值?你想检索什么,所有这些? 试试 $(input.attr("[name^='card'])").length; 【参考方案1】:

要读取array,也可以使用jQuery的“each”方法:

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

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

source

【讨论】:

【参考方案2】:

使用地图功能

var values = $("input[name^='card']").map(function (idx, ele) 
   return $(ele).val();
).get();

【讨论】:

提示:您也可以在函数中使用$(this) 并删除参数idx 和ele。 .get() 用于从 .map() 返回的 jQuery 对象中提取一个真实数组。 感谢@Robsch 的评论,.get 确实很重要,.map 返回的结果不是javascript 数组。【参考方案3】:

你的语法不正确。

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

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

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

【讨论】:

【参考方案4】:

您可以循环浏览这些项目:

$("input[name^='card']").each(function() 
    console.log($(this).val());
);

【讨论】:

【参考方案5】:

jQuery 集合有一个内置的迭代器 .each:

$("input[name^='card']").each(function () 
   console.log($(this).val());

【讨论】:

【参考方案6】:

使用: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);

【讨论】:

【参考方案7】:

你应该使用:

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

card_value=  array[i].value; //gets dom element at index i

【讨论】:

@scrappedcola 我怎样才能防止相同的值? @FreddySidauruk 你是什么意思“防止相同的价值”?这与我回答的问题无关。通常,人们会使用 if 块来检查值与数组中的内容。如果您有问题,请在网站上搜索相关问题,如果找不到,请创建您自己的问题。

以上是关于如何使用jQuery从数组中的元素中检索值?的主要内容,如果未能解决你的问题,请参考以下文章

如何将多个元素插入到 JQuery 中的数组中?

如何使用jQuery从数组中删除特定值

jAVA如何使一个数组里面的元素随机交换位置

如何使 jQuery 函数迭代从同一类中的 2 个列表中获取的单独数组?

如何将 jQuery 日期选择器值保存到数据库并从数据库中检索

javascript中,知道一个值,如何删除数组中的这个值的元素。