在以前, 如果想做一个全选和全不选的功能, 用 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()
有很大的争论.