Я хочу получить список имен флажков, которые выбраны в 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>
Сочетание двух предыдущих ответов:
var selected = []; $('#checkboxes input:checked').each(function() { selected.push($(this).attr('name')); });
Будет ли это делать?
var selected = []; $('div#checkboxes input[type=checkbox]').each(function() { if ($(this).is(":checked")) { selected.push($(this).attr('name')); } });
$("#checkboxes").children("input:checked")
даст вам массив самих элементов. Если вам просто нужны имена:
$("#checkboxes").children("input:checked").map(function() { return this.name; });
Мне нужно было подсчитать все флажки, которые проверены. Вместо того, чтобы писать цикл, я сделал это
$(".myCheckBoxClass:checked").length;
Сравните это с общим количеством флажков, чтобы увидеть, равны ли они. Надеюсь, это кому-нибудь поможет
Это работает для меня.
var selecteditems = []; $("#Div").find("input:checked").each(function (i, ob) { selecteditems.push($(ob).val()); });
Вы также можете присвоить им одно и то же имя , чтобы они представляли собой массив , но дать им разные значения :
<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()