Получить список отмеченных флажков в div с помощью jQuery

Я хочу получить список имен флажков, которые выбраны в div с определенным идентификатором. Как я могу сделать это с помощью jQuery?

Например, для этого div я хочу получить массив [ "c_n_0"; "c_n_3" ] или строка "c_n_0; c_n_3"

<div id="checkboxes">
    <input id="chkbx_0" type="checkbox" name="c_n_0" checked="checked" />Option 1
    <input id="chkbx_1" type="checkbox" name="c_n_1" />Option 2
    <input id="chkbx_2" type="checkbox" name="c_n_2" />Option 3
    <input id="chkbx_3" type="checkbox" name="c_n_3" checked="checked" />Option 4
</div>

Ответ 1

Сочетание двух предыдущих ответов:

var selected = [];
$('#checkboxes input:checked').each(function() {
    selected.push($(this).attr('name'));
});

Ответ 2

Будет ли это делать?

var selected = [];
$('div#checkboxes input[type=checkbox]').each(function() {
   if ($(this).is(":checked")) {
       selected.push($(this).attr('name'));
   }
});

Ответ 3

$("#checkboxes").children("input:checked")

предоставит вам массив самих элементов. Если вам просто нужны имена:

$("#checkboxes").children("input:checked").map(function() {
    return this.name;
});

Ответ 4

Мне нужно было подсчитать все флажки, которые были отмечены. Вместо написания цикла я сделал это

$(".myCheckBoxClass:checked").length;

Сравните это с общим количеством флажков, чтобы убедиться, что они равны. Надеюсь, что это поможет кому-то.

Ответ 5

Это работает для меня.

var selecteditems = [];

$("#Div").find("input:checked").each(function (i, ob) { 
    selecteditems.push($(ob).val());
});

Ответ 6

Вы также можете дать им все то же имя чтобы они были массивом, но придать им разные значения:

<div id="checkboxes">
    <input type="checkbox" name="c_n[]" value="c_n_0" checked="checked" />Option 1
    <input type="checkbox" name="c_n[]" value="c_n_1" />Option 2
    <input type="checkbox" name="c_n[]" value="c_n_2" />Option 3
    <input type="checkbox" name="c_n[]" value="c_n_3" checked="checked" />Option 4
</div>

Вы можете получить только значение только отмеченных с помощью карты:

$('#checkboxes input:checked[name="c_n[]"]')
            .map(function () { return $(this).val(); }).get()