Javascript 按预期选择元素,但只选择一次,为什么?
我有一个表格,代表所有CMS帖子。 我正在编写一个功能,通过单击“全部选中/全部取消选中”Javascript 按预期选择元素,但只选择一次,为什么?,javascript,jquery,Javascript,Jquery,我有一个表格,代表所有CMS帖子。 我正在编写一个功能,通过单击“全部选中/全部取消选中”checkbox元素 例如,无论你点击它多少次,它都会按预期工作。 如果选中复选框-它将提示“立即选中所有复选框” 否则-它将发出警报“立即取消选中所有复选框” 再一次-它的工作如预期 但是,如果将alert()s替换为另一个逻辑,则这将不再像预期的那样工作,只能工作一次 $("table thead input").click(function(){ var checkboxes = $("table
checkbox元素
例如,无论你点击它多少次,它都会按预期工作。
如果选中复选框-它将提示“立即选中所有复选框”
否则-它将发出警报“立即取消选中所有复选框”
再一次-它的工作如预期
但是,如果将alert()
s替换为另一个逻辑,则这将不再像预期的那样工作,只能工作一次
$("table thead input").click(function(){
var checkboxes = $("table tbody tr input")
if ($(this).is(':checked')) {
checkboxes.each(function(){
$(this).attr('checked', true);
});
} else {
checkboxes.each(function(){
$(this).attr('checked', false);
});
}
});
它将选中/取消选中这些复选框,但只会选中一次-如果您再次单击$(“table thead input”)
,它将不起作用
我尝试了删除attr('checked')
,而不是$(this.attr('checked',false)
,但是运气不好
有什么问题吗?使用而不是设置选中状态
$(this).prop('checked', false);//to uncheck
$(this).prop('checked', true);//to check
您的代码可以简化为
$("table thead input").change(function () {
var checkboxes = $("table tbody tr input");
checkboxes.prop('checked', this.checked)
});
或者,如果元素不是动态的,则转到下面
//cache the checkbox reference
var checkboxes = $("table tbody tr input");
$("table thead input").change(function () {
checkboxes.prop('checked', this.checked)
});
//cache the checkbox reference
var checkboxes = $("table tbody tr input");
$("table thead input").change(function () {
checkboxes.prop('checked', this.checked)
});