Использование jquery для получения всех отмеченных флажков с определенным именем класса - PullRequest
192 голосов
/ 27 марта 2011

Я знаю, что могу получить все отмеченные флажки на странице, используя это:

$('input[type=checkbox]').each(function () {
    var sThisVal = (this.checked ? $(this).val() : "");
});

Но сейчас я использую это на странице, на которой есть некоторые другие флажки, которые я не хочу включать. Как бы я изменил приведенный выше код, чтобы смотреть только на отмеченные флажки, которые имеют определенный класс на них?

Ответы [ 13 ]

333 голосов
/ 27 марта 2011

$('.theClass:checkbox:checked') выдаст вам все отмеченные флажки с классом theClass.

112 голосов
/ 27 марта 2011
$('input:checkbox.class').each(function () {
       var sThisVal = (this.checked ? $(this).val() : "");
  });

Пример для демонстрации.

:checkbox - это селектор для флажков (на самом деле, вы могли бы опустить часть селектора input, хотя я обнаружил нишевые случаи, когда вы могли бы получить странные результаты, делая это в более ранних версиях библиотеки.Я уверен, что они исправлены в более поздних версиях)..class - селектор для атрибута класса элемента, содержащего class.

68 голосов
/ 27 марта 2011

Обязательный .map пример:

var checkedVals = $('.theClass:checkbox:checked').map(function() {
    return this.value;
}).get();
alert(checkedVals.join(","));
18 голосов
/ 05 ноября 2013
$('input.yourClass:checkbox:checked').each(function () {
    var sThisVal = $(this).val();
});

Это получит все флажки имени класса "ваш класс". Мне нравится этот пример, так как он использует селектор jQuery флажок вместо выполнения условной проверки. Лично я бы также использовал массив для хранения значения, а затем использовал бы их по мере необходимости, например:

var arr = [];
$('input.yourClass:checkbox:checked').each(function () {
    arr.push($(this).val());
});
11 голосов
/ 05 сентября 2016

Если вам нужно получить значение все отмеченные флажки как массив:

let myArray = (function() {
    let a = [];
    $(".checkboxes:checked").each(function() {
        a.push(this.value);
    });
    return a;
})()
9 голосов
/ 27 марта 2011
 $('input.theclass[type=checkbox]').each(function () {
   var sThisVal = (this.checked ? $(this).val() : "");
 });
7 голосов
/ 17 ноября 2017

Простой способ получить все значения в массиве

var valores = (function () {
    var valor = [];
    $('input.className[type=checkbox]').each(function () {
        if (this.checked)
            valor.push($(this).val());
    });
    return valor;

})();

console.log(valores);
7 голосов
/ 10 января 2013

Я не уверен, поможет ли это для вашего конкретного случая, и я не уверен, что в вашем случае флажки, которые вы хотите включить, являются частью единой формы, элемента div или таблицы, но вы всегда можетеустановите все флажки внутри определенного элемента.Например:

<ul id="selective">
 <li><input type="checkbox" value="..." /></li>
 <li><input type="checkbox" value="..." /></li>
 <li><input type="checkbox" value="..." /></li>
 <li><input type="checkbox" value="..." /></li>
</ul>

Затем, используя следующий jQuery, он ТОЛЬКО проходит через флажки в этом UL с id = "селективный":

$('#selective input:checkbox').each(function () {
 var sThisVal = (this.checked ? $(this).val() : "");
});
7 голосов
/ 27 марта 2011
 $('input.myclass[type=checkbox]').each(function () {
   var sThisVal = (this.checked ? $(this).val() : ""); });

См. Селекторы классов jQuery .

5 голосов
/ 16 мая 2018

Вы можете использовать что-то вроде этого: HTML:

<div><input class="yourClass" type="checkbox" value="1" checked></div>
<div><input class="yourClass" type="checkbox" value="2"></div>
<div><input class="yourClass" type="checkbox" value="3" checked></div>
<div><input class="yourClass" type="checkbox" value="4"></div>

JQuery:

$(".yourClass:checkbox").filter(":checked")


Будут выбраны значения 1 и 3.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...