使用jquery获取具有特定类名的所有选中复选框

leo*_*ora 200 checkbox jquery jquery-selectors

我知道我可以使用以下方法在页面上获得所有选中的复选框:

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

但我现在在一个页面上使用它,这个页面上有一些我不想包含的其他复选框.如何将上面的代码更改为仅查看具有特定类的复选框?

Cok*_*god 352

$('.theClass:checkbox:checked')将为您提供所有已选中的复选框theClass.

  • 真好 同样,$('。theClass:checkbox:not(:checked)')将获得所有未选中的内容。 (3认同)
  • @FluffyBeing是的,要通过名称获取输入,您可以使用: `$('input[name="input_name"]:checked')` 或 `$('input[name="input_name"]').filter (':检查')` (2认同)

Rus*_*Cam 114

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

举例说明.

:checkbox是一个复选框的选择器(事实上,你可以省略input选择器的一部分,虽然我发现了一些利基案例,你会在早期版本的库中得到奇怪的结果.我确信它们在以后的版本中得到修复). .class是包含的元素类属性的选择器class.

  • Jquery注意到:复选框建议坚持使用[type ="checkbox"].$('[type ="checkbox"] .class')....或$('input [type ="checkbox"] .class') (9认同)
  • 我从这里读到:http://api.jquery.com/checkbox-selector/ ...在"附加说明"下 (8认同)

kar*_*m79 68

必要的.map例子:

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

  • $('input.theClass:checked').map(function(){return this.value}).get().join(','); (3认同)

ali*_*r49 18

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

这将获得类名"yourClass"的所有复选框.我喜欢这个例子,因为它使用jQuery选择检查,而不是做一个条件检查.我个人也会使用数组来存储值,然后根据需要使用它们,如:

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


Far*_*ini 12

如果需要将所有选中复选框的值作为数组获取:

let myArray = (function() {
    let a = [];
    $(".checkboxes:checked").each(function() {
        a.push(this.value);
    });
    return a;
})()
Run Code Online (Sandbox Code Playgroud)


Alp*_*Alp 9

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


Liz*_*aly 7

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

请参阅jQuery类选择器.


Flo*_*ens 7

我不确定它是否对您的特定情况有帮助,我不确定在您的情况下,您想要包含的复选框是否只是单个表单或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>
Run Code Online (Sandbox Code Playgroud)

然后,使用以下jQuery,它只通过id ="selective"的UL中的复选框:

$('#selective input:checkbox').each(function () {
 var sThisVal = (this.checked ? $(this).val() : "");
});
Run Code Online (Sandbox Code Playgroud)


Cai*_*spo 7

将所有值都放入数组的简单方法

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

})();

console.log(valores);
Run Code Online (Sandbox Code Playgroud)


Bab*_*med 7

你可以这样试试

let values = (function() {
                let a = [];
                $(".chkboxes:checked").each(function() {
                    a.push($(this).val());
                });
                return a;
            })();
Run Code Online (Sandbox Code Playgroud)


Phi*_*hin 5

您可以使用如下代码:
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>
Run Code Online (Sandbox Code Playgroud)


jQuery的:

$(".yourClass:checkbox").filter(":checked")
Run Code Online (Sandbox Code Playgroud)


它将选择值1和3。