<input type="checkbox" class="aihao">吃
alert($(all[i]).attr("checked"));
如果选中,则弹出checked,如果没有选中,则弹出undefined。
再看下面这句代码
alert($(all[i]).attr("checked")=="checked");
如果选中,则弹出true,如果没有选中,则弹出false。
也就是说,checked这个属性的值有两个:那就是checked和undefined。
但是,再看这句代码(有效)
alert(!$(all[i]).attr("checked"))
居然可以对checked的属性值进行取反,再看下面这两句代码
var a =$(all[i]).attr("checked");
alert(typeof a);
选中,打印的是String,未选中,打印的undefined。
这也就是说,checked这个属性值实际上是有四个的,分别是:
字符串类型的checked
布尔类型的true
undefined
布尔类型的false
其中,字符串类型的checked,实际上等效于布尔类型的true,而undefined,实际上等效于布尔类型的false