检查是否使用jquery检查了输入

问题描述

| 我将如何实现:
if($(this).parent().find(\'input:checked\') == true)

{$(this).find(\'.switch\').attr(\'state\',\'on\');}
else{$(this).find(\'.switch\').attr(\'state\',\'off\');}
我知道这是错误的,但您会明白我的想法:)。如果有一个输入被选中,则将状态打开;如果没有,则将状态关闭。     

解决方法

试试看
if($(this).parent().find(\'input\').is(\':checked\')) {
    something();
}
如果只有一个复选框,则此方法有效。     ,不一定是错误的,但是选择器返回适用于该条件的所有元素。因此,您必须检查长度是否不为0:
if($(this).parent().find(\'input:checked\').length)
    ,Supposign
input[type=checkbox] = this
,您可以在元素本身上进行检查。 资料来源:jQuery文档
$(\"input[type=checkbox]\").change(function(){
    if ( this.checked ){}
    //or
    if ( $(this).prop(\"checked\") ){}   
    //or
    if ( $(this).is(\":checked\") ){}
});
    ,如果您知道输入html元素的ID,这也将起作用:
if($(\'input#element_id_name:checked\').length>0) {
  //your code here.
}
    ,如果您知道ID,请使用:
if ($(\"#myCheckBox\").is(\":checked\")) {  

}
    ,尝试这样做:
if ($(this).parent().find(\'input:checked\').length > 0) {    
    $(this).find(\'.switch\').attr(\'state\',\'on\');
} else {
    $(this).find(\'.switch\').attr(\'state\',\'off\');
}
假设在
$(this).parent()
范围内只有1个输入