Javascript jQuery是否有collect方法
我有这个密码Javascript jQuery是否有collect方法,javascript,jquery,Javascript,Jquery,我有这个密码 var selected = new Array(); $(".client_associates_users input:checked").each(function(index) { selected.push($(this).val()); }); 它工作得很好,但我想知道jQuery是否有一个collect,这样我就不必创建一个数组并推送它了 我基本上需要选中输入字段的所有值是,$.fn.map或$.map 或
var selected = new Array();
$(".client_associates_users input:checked").each(function(index) {
selected.push($(this).val());
});
它工作得很好,但我想知道jQuery是否有一个collect,这样我就不必创建一个数组并推送它了
我基本上需要选中输入字段的所有值是,
$.fn.map
或$.map
或者这张是给$.map
(我更喜欢这张)
更新不再在每次迭代中重新创建jQuery对象。jQuery提供了
.map()
方法
var selected = $(".client_associates_users input:checked").map(function(index) {
return this.value;
}).get();
此方法将从回调中返回的任何数据中创建一个新数组。请注意,您需要在最后调用.get()
,以获得真正的数组
参考:jQuery对象$(“.client\u associates\u users input:checked”)
是一个数组,因此如果在选择器的末尾附加.val()
,您应该能够访问这些值。。。。因此,您可能希望使用它,而不是jQuery中的each
=)@jasonmerino--.val()
和其他getter方法总是从第一个选定的元素而不是所有选定的元素返回值。对,我应该指定使用.eq(I).val()
或类似性质的东西……只要您不在每次迭代中重新创建jQuery对象,我会给它一个+1。@jAndy--删除了我的旧注释,因为它的拼写错误。它基本上是将.value
与.val()
进行比较,这与您所说的内容并不相关。正如您所说,没有理由在每次迭代中重新创建jQuery对象。谢谢
var $checkboxes = $(".client_associates_users input:checked"),
selected = $.map($checkboxes, function(el,i){
return $checkboxes.eq(i).val();
});
var selected = $(".client_associates_users input:checked").map(function(index) {
return this.value;
}).get();