动态改变checkbox 的是否被选中,需要改变他的 checked 属性。 通常我们会想到用 attr去对属性进行读取/改变。
$(this).attr("checked",true);
但是当我们操作后发现,如果在js中用attr对checkbox进行动态选中/清除选中,是有问题的,当第一次操作以后如果再次选中,是没有任何反应的。 这时候我们需要用到jquery中另一个用来操作属性的系统函数 prop
$(this).prop("checked",true);
因为本质上默认有checked属性的多选框是会被默认选中的,但是一个多选框是否现在被选中和 attr中的checked属性并没有直接关系。 attr是初始值,prop是当前值。 所以对html标签操作某些动态属性时候,应该使用prop方法。如 checked selected disabled 等。 因为prop是用来获取当前值的方法,所以有可以用于代替attr用来进行当前状态获取:
$(this).prop("checked");
返回 true/false;