Массив jQuery всех выбранных флажков (по классам)

Возможный дубликат:
Выберите значения группы флажков с помощью jQuery

В HTML у меня есть набор флажков, сгруппированных вместе классом. Я хочу получить массив в jQuery, содержащий все флажки, которые были выбраны/отмечены для этого класса (так что другие флажки на странице игнорируются).

Итак, HTML-код выглядит следующим образом:

<input type="checkbox" class="group1" value="18" checked="checked" />
<input type="checkbox" class="group1" value="20" />
<input type="checkbox" class="group1" value="15" />
<input type="checkbox" class="group2" value="14" />
<input type="checkbox" class="group1" value="55" checked="checked" />
<input type="checkbox" class="group1" value="10" checked="checked" />
<input type="checkbox" class="group2" value="77" checked="checked" />
<input type="checkbox" class="group1" value="11" />

Вернет значения флажков checked/selected group1 в массив, подобный этому:

var values = [ 18, 55, 10 ];

Ответ 1

Вы можете использовать :checkbox и :checked псевдоселекторами и селектором .class, при этом вы убедитесь, что получаете правильные элементы, только отмеченные флажки с указанным вами классом.

Затем вы можете легко использовать метод Traversing/map для получения массива значений:

var values = $('input:checkbox:checked.group1').map(function () {
  return this.value;
}).get(); // ["18", "55", "10"]

Ответ 2

var matches = [];
$(".className:checked").each(function() {
    matches.push(this.value);
});

Ответ 3

Вы также можете добавить underscore.js в свой проект и сможете сделать это в одной строке:

_.map($("input[name='category_ids[]']:checked"), function(el){return $(el).val()})