使用 jQuery 检查输入是否已选中

20

我该如何实现这个:

if($(this).parent().find('input:checked') == true)

{$(this).find('.switch').attr('state','on');}
else{$(this).find('.switch').attr('state','off');}

我知道这样不对,但我想你能明白我的意思:如果有一个被检查的输入,就把状态设为打开,否则关闭。


您能展示一下您的标记和更多代码上下文吗?仅凭这部分很难知道所提供的解决方案是否准确。 - mVChr
6个回答

46

尝试使用

if($(this).parent().find('input').is(':checked')) {
    something();
}

如果只有一个复选框,这个方法有效。


6

这并不一定是错误的,但选择器会返回符合条件的所有元素。因此,您需要检查长度是否为0:

if($(this).parent().find('input:checked').length)

5
假设 input[type=checkbox] = this,你可以在元素本身上进行检查。
来源:jQuery文档
$("input[type=checkbox]").change(function(){
    if ( this.checked ){}
    //or
    if ( $(this).prop("checked") ){}   
    //or
    if ( $(this).is(":checked") ){}
});

4

如果您知道输入 HTML 元素的 ID,则可以使用以下方法:

if($('input#element_id_name:checked').length>0) {
  //your code here.
}

3

如果您知道ID,只需使用:

if ($("#myCheckBox").is(":checked")) {  

}

1

尝试这样做:

if ($(this).parent().find('input:checked').length > 0) {    
    $(this).find('.switch').attr('state','on');
} else {
    $(this).find('.switch').attr('state','off');
}

这假设你在$(this).parent()的范围内只有一个输入


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接