好长时间没用jq, 之前用的都是ng。
想着随便参考一下,结果被坑。因为这篇文章是09年的,也和当时jq的版本号有关,但是为什么在百度排名第一,百度果然坑人,以后还是google给出坑人文章的链接
虽然已经解决,但是我决定重新写一篇!!!
如何判断checkbox是否选中?
文中说用 attr()
在实际判断的时候都是不可用的,判断不出来!!!
if ($("#id").is(":checked")) { // 存在} else { // 不存在}
看到这里除了checked 还能判断什么呢?
除了判断checkout好像没有看到hover,类似于这种应该如何判断呢?
我们知道 如果$()
选择器找到一个元素必定存在一个长度,因此我们也可以根据长度去判断
if ($('#id:hover').length) { // 元素存在} else { // 元素不存在}
感觉有点跑偏了,回归正题。。。
如果修改呢,很多人用的attr,removeAttr, 这些都是错误的,尤其是remove属性后用attr无法加回来
这里应该使用pop
,而不是attr
官方建议 具有 true 和 false 两个属性的属性,如 checked
, selected
或者 disabled
使用prop()
,其他的使用 attr()
代码如下
$("#checkAll").change(function () { $("input:checkbox").prop('checked', $(this).prop("checked"));});
demo
这时候傻呵呵以为你做完了就错了!!!你还没有考虑全选后取消一个和全部一个个选中后全选按钮
与全选按钮关联
$('.case').on('click', function () { if ($('.case').length == $('.case:checked').length) { $('#checkAll').prop('checked', true); } else { $('#checkAll').prop('checked', false); }})
demo
参考文章