Массив 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()})