如何使用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 函数迭代从同一类中的 2 个列表中获取的单独数组?