jQuery是否有一个collect方法

时间:2012-04-20 18:32:08

标签: javascript jquery

我有这段代码

  var selected = new Array();
        $(".client_associates_users input:checked").each(function(index) {
            selected.push($(this).val());
        });

并且它工作得很好,但我想知道jQuery是否有一个收集,所以我不必创建一个数组并推送它。

我基本上想要检查输入字段的所有值

3 个答案:

答案 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()附加到该选择器的末尾,您应该能够访问这些值。