我有以下代码。它似乎工作,因为它将检查所有框,然后取消选中它们。但是,在第一轮之后,它会停止检查和取消选中。它只会检查一次,并取消选中所有复选框一次。之后,我只有超链接切换显示和隐藏。
<script type="text/javascript">
function selectAll(){
$("input[type=checkbox]").each(function(){
$(this).attr('checked', true);
});
$("#select_all").hide();
$("#unselect_all").show();
}
function unselectAll(){
$("input[type=checkbox]").each(function(){
$(this).attr('checked', false);
});
$("#select_all").show();
$("#unselect_all").hide();
}
</script>
答案 0 :(得分:1)
尝试使用prop()
而不是attr()
作为attr()
与checked属性一起使用时会产生意外结果,您不需要在此使用each()
,也可以指定一些{{} 1}}对复选框进行分组,而不是应用于页面上的所有复选框。您可以使用class selector选择具有相同class
的复选框(元素)。
class
答案 1 :(得分:1)
使用.prop()
代替.attr()
:
<script type="text/javascript">
function selectAll(){
$("input[type=checkbox]").each(function(){
$(this).prop('checked', true);
});
$("#select_all").hide();
$("#unselect_all").show();
}
function unselectAll(){
$("input[type=checkbox]").each(function(){
$(this).prop('checked', false);
});
$("#select_all").show();
$("#unselect_all").hide();
}
</script>