我有这段代码
var selected = new Array();
$(".client_associates_users input:checked").each(function(index) {
selected.push($(this).val());
});
并且它工作得很好,但我想知道jQuery是否有一个收集,所以我不必创建一个数组并推送它。
我基本上想要检查输入字段的所有值
答案 0 :(得分:6)
是的,$.fn.map
http://api.jquery.com/map/或$.map
http://api.jquery.com/jQuery.map/
var $checkboxes = $(".client_associates_users input:checked"),
selected = $checkboxes.map(function(i){
return $checkboxes.eq(i).val();
}).get();
或$.map
(我更喜欢这个)
var $checkboxes = $(".client_associates_users input:checked"),
selected = $.map($checkboxes, function(el,i){
return $checkboxes.eq(i).val();
});
<强>更新强>
不再在每次迭代时重新创建jQuery对象。
答案 1 :(得分:6)
jQuery提供.map()
方法,
var selected = $(".client_associates_users input:checked").map(function(index) {
return this.value;
}).get();
此方法将从回调中的return
数据中创建一个新数组。请注意,您需要在最后调用.get()
以获得真正的数组。
参考:.map()
答案 2 :(得分:0)
jQuery对象$(".client_associates_users input:checked")
是一个数组,因此如果将.val()
附加到该选择器的末尾,您应该能够访问这些值。