checkbox的:checked与[checked]选择器的区别
<input type="checkbox" />
这个控件,有时候很诡异。选择器:checked与[checked]经常不同步,也就是说只有一个有效,另一个无效。
经过研究发现,:checked选择器选择的是控件自身的checked内存变量值,而[checked]选择的是input标签的checked属性。即jquery中的attr()和prop()的区别。
在angularJS中,ng-checked是通过attr来实现功能的,因此只能用[checked];而如果你把<input type="checkbox" />放在<label></label>内部,那么点击时attr就不会发生变化,但prop会发生变化,所以就得用:checked。关键是二者并不同步,所以没法通用!