jquery-selectors attr - Использование jquery для проверки всех флажков с определенным именем класса




data href (11)

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

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

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


Answers

Я знаю, что у этого есть множество отличных ответов на этот вопрос, но я нашел это во время просмотра, и я считаю, что он очень прост в использовании. Думал, что я поделюсь с кем-нибудь еще.

HTML:

<fieldset>
    <!-- these will be affected by check all -->
    <div><input type="checkbox" class="checkall"> Check all</div>
    <div><input type="checkbox"> Checkbox</div>
    <div><input type="checkbox"> Checkbox</div>
    <div><input type="checkbox"> Checkbox</div>
</fieldset>
<fieldset>
    <!-- these won't be affected by check all; different field set -->
    <div><input type="checkbox"> Checkbox</div>
    <div><input type="checkbox"> Checkbox</div>
    <div><input type="checkbox"> Checkbox</div>
</fieldset>

JQuery:

$(function () {
    $('.checkall').on('click', function () {
        $(this).closest('fieldset').find(':checkbox').prop('checked', this.checked);
    });
});

Ссылка: Самый простой «Проверить все» с помощью jQuery



<input type="checkbox" id="Checkbox1" class = "chk" value = "1" />
<input type="checkbox" id="Checkbox2" class = "chk" value = "2" />
<input type="checkbox" id="Checkbox3" class = "chk" value = "3" />
<input type="checkbox" id="Checkbox4" class = "chk" value = "4" />
<input type="button" id="demo" value = "Demo" />

<script type = "text/javascript" src = "http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.6.1.min.js"></script>
<script type="text/javascript">
    $("#demo").live("click", function () {
        $("input:checkbox[class=chk]:checked").each(function () {
            alert("Id: " + $(this).attr("id") + " Value: " + $(this).val());
        });
    });
</script>

http://www.jqueryfaqs.com/Articles/Get-values-of-all-checked-checkboxes-by-class-name-using-jQuery.aspx


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

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

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

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


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

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

                    })();

                    console.log(valores);

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

var values = (function() {
                var a = [];
                $(".checkboxes:checked").each(function() {
                    a.push(this.value);
                });
                return a;
            })()

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

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


JQuery:

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


Он выберет значения 1 и 3


$('input.yourClass:checkbox:checked').each(function () {
    var sThisVal = $(this).val();
});

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

var arr = [];
$('input.yourClass:checkbox:checked').each(function () {
    arr.push($(this).val());
});

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

var checkedVals = $('.theClass:checkbox:checked').map(function() {
    return this.value;
}).get();
alert(checkedVals.join(","));

Мой способ сделать это:

if ( $("#checkbox:checked").length ) {       
    alert("checkbox is checked");
} else {
    alert("checkbox is not checked");
}






jquery jquery-selectors checkbox