JQuery实现checkbox复选框同步勾选和取消
JQuery对checkbox的读写与其他input不太一样,很容易出错,浪费很多时间。
打个比方,要获取checkbox是否是checked状态,用.attr('checked') === true 是不奏效的,得用 .is(':checked') === true。
本例要实现checkbox同步勾选和取消,我们仅同步与当前主题data-url一样的checkbox:
$('input[type=checkbox]').on('click', function() {
var url = $(this).attr('data-url');
var status = $(this).is(':checked');
$('input[type=checkbox]').each(function() {
var self = $(this);
if (self.attr('data-url') === url) {
if (status === true) {
self.prop('checked', true);
} else {
self.prop('checked', false);
}
}
});
});
由此我们引申出JQuery操作checkbox的几个要点:
- 判断是否checked,用
.is(':checked') === true或者.is(':checked') === false方法; - 设置checked,JQuery 1.6+用
.prop('checked', true),1.5.x及以下用.attr('checked', true)。false值同理。 - 设置checked错误方法:
.prop('checked') = true,.attr('checked') = true。false同理,切记! - 删除 checked 属性用:
.removeAttr('checked')。
参考资料:
上一篇: git中merge和rebase的区别
下一篇: PHP提取奇数或偶数下标元素
研究研究,学习学习。