IT技术博客大学习 共学习 共进步

jQuery 设置复选框选中状态的 BUG

idea's blog 2014-11-19 23:01:54 浏览 1,884 次

   在以前, 如果想做一个全选和全不选的功能, 用 jQuery 非常简单, 就是设置 checked 属性. 但今天见鬼了, 以前能正常工作的代码无论如何也不能工作.

if(selectAll){
	$('input.cb').attr('checked', 'checked');
}else{
	$('input.cb').removeAttr('checked');
}

   这段代码只能工作一次, 但我可以发誓, 这段代码以前用得没问题! 然后我尝试这段代码:

$('input.cb').attr('checked', selectAll);

   也是只能工作一次.

   后来, 终于查明好像是 jQuery 的版本兼容问题, 我找出了下面的正确方法, 但不知道是不是兼容所有版本的 jQuery.

$('input.cb').prop('checked', cb.checked);

   兼容所有版本的正确方法:

// 兼容所有版本的正确方法
$('input.cb').each(function(i, e){
	e.checked = cb.checked;
});

   搜索了一下, jQuery 对于 attr() 和 prop() 有很大的争论.

建议继续学习

  1. JQuery实现Excel表格呈现 (阅读 48,164)
  2. 分享一个JQUERY颜色选择插件 (阅读 14,062)
  3. jQuery插件---轻量级的弹出窗口wBox. (阅读 10,624)
  4. 10个强大的Ajax jQuery文件上传程序 (阅读 8,722)
  5. jQuery性能优化指南 (阅读 8,645)
  6. jQuery的data()方法 (阅读 8,504)
  7. jQuery Color Animations颜色动画插件 (阅读 8,344)
  8. 精于图片处理的10款jQuery插件 (阅读 7,261)
  9. 配合jquery实现异步加载页面元素 (阅读 6,284)
  10. jQuery中getJSON跨域原理详解 (阅读 6,263)