2

我有这个代码

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

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

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

4

3 回答 3

6

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.

于 2012-04-20T18:34:16.200 回答
6

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()

于 2012-04-20T18:34:59.263 回答
0

jQuery 对象是一个数组,因此如果您将 a 附加到该选择器的末尾,$(".client_associates_users input:checked")您应该能够访问这些值。.val()

于 2012-04-20T18:35:18.997 回答