欢迎各位兄弟 发布技术文章
这里的技术是共享的
if($(".chooseall").attr("checked") == "checked"){
$("input[name='checkbox1']").removeAttr("checked","checked");
console.log(1);
}else{
$("input[name='checkbox1']").attr("checked","checked");
console.log(2);
}
});
上面的这个代码第一次点击和第二次点击,能实现全选和反选功能,但一遍之后就不再起作用,这是什么情况啊
除了第一个checkbox之外,其余的都是ajax动态生成的,跟这个有关系么?console.log每次点击的都能交替输出1和2,但就是中间的代码不能执行。
removeAttr参数只需要一个,removeAttr("checked")
不过建议替换成
1 2 3 4 5 6 7 8 9 | $( ".chooseall" ).click( function (){ if ($( ".chooseall" ).prop( "checked" ) == true ){ $( "input[name='checkbox1']" ).prop( "checked" , true); console.log(1); } else { $( "input[name='checkbox1']" ).prop( "checked" , false ); console.log(2); } }); |
或者更简洁的,
1 2 3 4 | $( ".chooseall" ).click( function (){ var isChecked = $( this ).prop( "checked" ); $( "input[name='checkbox1']" ).prop( "checked" , isChecked); }); |
版权声明:本文为博主原创文章,未经博主允许不得转载。
之前我是这样写的
第一次点的时候好用,但是第二次之后就不行了。
后来查资料改成下面这样就好用了
原因是jQuery自1.6.1开始增加了一个prop()方法,关于attr和prop的使用区别总结起来就是具有 true 和 false 两个属性的属性,如 checked, selected 或者 disabled 使用prop(),其他的使用 attr(),具体见下表:
标签: jquery复选框选中事件 | 分类: extjs jquery |
版权声明:本文为博主原创文章,未经博主允许不得转载。
$("#cz :checkbox").click(function(){ alert($(this).val()); }); 来自 http://zhidao.baidu.com/link?url=8d-fQcbi1Uvn63jMe21Ix8lO0eA40fDfGu8A1vzpP-crLH_zxzzJ26ESMMuTxbFGy2vktQRsRt0M4LsEHmcwGa
1、获取单个checkbox选中项(三种写法)