我有这个代码
var selected = new Array();
$(".client_associates_users input:checked").each(function(index) {
selected.push($(this).val());
});
它工作得很好,但我想知道 jQuery 是否有一个收集,所以我不必创建一个数组并推送到它。
我基本上想要检查的输入字段的所有值
我有这个代码
var selected = new Array();
$(".client_associates_users input:checked").each(function(index) {
selected.push($(this).val());
});
它工作得很好,但我想知道 jQuery 是否有一个收集,所以我不必创建一个数组并推送到它。
我基本上想要检查的输入字段的所有值
Yes, $.fn.map
http://api.jquery.com/map/ or $.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();
or this for $.map
(I prefer this one)
var $checkboxes = $(".client_associates_users input:checked"),
selected = $.map($checkboxes, function(el,i){
return $checkboxes.eq(i).val();
});
Update
No longer recreates a jQuery object on each iteration.
jQuery offers the .map()
method,
var selected = $(".client_associates_users input:checked").map(function(index) {
return this.value;
}).get();
This method will create a new array out of whatever data you return
from within the callback. Be aware that you need to call .get()
at the end to get a real array.
Ref.: .map()
jQuery 对象是一个数组,因此如果您将 a 附加到该选择器的末尾,$(".client_associates_users input:checked")
您应该能够访问这些值。.val()