.is(":checked") vs .prop("checked") == true
.attr(‘checked’): //看版本1.6+返回:”checked”或”undefined” ;1.5-返回:true或false
.prop(‘checked’): //1.6+:true/false
.is(‘:checked’): //所有版本:true/false//别忘记冒号哦
jquery赋值checked的几种写法:
所有的jquery版本都可以这样赋值:
// $(“#cb1″).attr(“checked”,”checked”);
// $(“#cb1″).attr(“checked”,true);
jquery1.6+:prop的4种赋值:
// $(“#cb1″).prop(“checked”,true);//很简单就不说了哦
// $(“#cb1″).prop({checked:true}); //map键值对
// $(“#cb1″).prop(“checked”,function(){
return true;//函数返回true或false
});
//$(“#cb1″).prop(“checked”,”checked”);
在判断复选框、单选框等有checked属性的元素是否被选中时,兼容最好的是:
.is(‘:checked’): //所有版本:true/false//别忘记冒号哦
removeProp()
函数的返回值是jQuery类型,返回当前jQuery对象本身。
window
对象或DOM元素的一些内置属性是不允许删除的,如果试图删除这些属性,将会导致浏览器产生一个错误。jQuery首先会将该属性的值赋为undefined,并忽略掉浏览器生成的任何错误信息。
一般情况下,你最好使用该函数来删除一些自定义的属性,而不是内置属性。
请不要使用本函数来删除DOM元素的本地属性checked
、selected
和disabled
。这将彻底删除对应的属性,并且,一旦删除之后,你无法再向该DOM元素重新添加对应的属性。请使用prop()函数将其设为false
即可,例如:jQueryObject.prop("checked", false)
。
下面是监听checkbox是否checked:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title></title> </head> <body> <label> <input id="input" type="checkbox"/> </label> <input type="submit"/> <script src="js/jquery-1.12.4.js"></script> <script> $('#input').bind('change',function(){ if($(this).prop('checked')){ alert("有checked属性"); }else{ alert("没有checked属性"); } }); </script> </body> </html>
checkbox在勾选中的情况下,html并没有出现checked这个属性,但是监听函数识别出了他有这个checked属性,感觉这是不是一个bug呀???