JavaScript与jQuery实现复选框全选与全不选的两种方法

作者:异步漫步

时间:2026-10-29

浏览:648

本文详细介绍了使用原生JavaScript和jQuery库实现网页中复选框全选与全不选功能的具体方法。通过遍历DOM元素并修改checked属性,分别展示了两种语言环境下的代码实现。文章提供了完整的HTML结构与JS逻辑,帮助开发者快速掌握前端交互技巧,提升用户操作体验。

文章目录

JavaScript实现复选框全选与全不选

本文通过具体实例,讲解如何利用JavaScript和jQuery实现复选框的全选与全不选功能,供读者参考学习。

首先介绍使用原生JavaScript实现复选框全选与全不选的方法。这是一个较为实用的前端交互技巧,通常用于提升操作便捷性。例如在新浪邮箱或某些内容管理系统(CMS)后台中,点击一个控制复选框即可自动选中所有列表项。这种效果能显著改善用户体验,接下来将逐步演示其实现过程。

首先构建包含多个复选框的列表,此时尚未添加全选或全不选的控制按钮,界面大致如下所示:


<input type=checkbox name=chk>
<input type=checkbox name=chk>
<input type=checkbox name=chk>
<input type=checkbox name=chk>
<input type=checkbox name=chk>
<input type=checkbox name=chk>

接着,在列表旁边添加一个用于控制全选状态的复选框:

全选:

相关代码如下:

<input type=checkbox onclick=sel('chk')>

以下是点击全选复选框后执行的JavaScript代码逻辑。该脚本遍历页面上所有的复选框,并根据全选框的状态同步更新每个复选框的选中状态:


<script language="javascript">
 function sel(a){
 o=document.getElementsByName(a)
 for(i=0;i<o.length;i++)
 o[i].checked=event.srcElement.checked
 }
</script>

此外,还有一种实现JS全选与反选功能的方法,此处直接提供代码供参考整理:


<input type=checkbox name=m>
<input type=checkbox name=m>
<input type=checkbox name=m>


<!--放一个控制全选的按钮-->
全选<input type="checkbox" value="1" onclick="mm(this)">
<script language=javascript>
<!--JS部分-->
function mm(o)
{
  var a = document.getElementsByName("m");
  for (var i=0;i<a.length;i++){
    a[i].checked = o.checked;
  }
}
</script>

上述两种方法任选其一即可,实现过程均较为简单。

jQuery实现复选框全选与全不选

接下来介绍使用jQuery实现复选框全选与全不选的方法。虽然原生JavaScript实现起来并不复杂,但代码量相对较多,而jQuery可以简化操作。

下面详细讲解使用jQuery进行具体操作的方法。

jQuery中的.attr()方法用于获取或设置对象的属性值,例如:


$("input[name='chk_list']").attr("checked"); //读取所有name为'chk_list'对象的状态(是否选中)
$("input[name='chk_list']").attr("checked",true); //设置所有name为'chk_list'对象的checked为true

再如:


$("#img_1").attr("src","test.jpg"); //设置ID为img_1的<img>src的值为'test.jpg'
$("#img_1").attr("src"); //读取ID为img_1的<img>src值

例1:


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
 <head>
 <meta charset="utf-8">
<script src="jquery-1.7.2.min.js"></script>
<script>
 $(document).ready(function(){
 //是否选择进行判断
 $(".btn").click(function(){
  if ($("input:checkbox:checked").length == 0)
  {
  alert('你未选择爱好');
  }
 });
 //进行反选
  $(".btn1").click(function(){
  $("input[type=checkbox]").each(function(){
  if ($(this).attr("checked"))
  {
   $(this).attr("checked",false);
  }else{
   $(this).attr("checked",true);
  }
  });
  });
  });
 </script>
 </head>
<body>
爱好:
<input type="checkbox" name="fav[]" value="read">阅读
<input type="checkbox" name="fav[]" value="music">音乐
<input type="checkbox" name="fav[]" value="sport">体育<br />
<input type="button" name="btn" class="btn" value="提交">
<input type="button" name="btn1" class="btn1" value="反选">
</body>
</html>

例2:


<script src="jquery-1.3.2.min.js"></script>
<input type="checkbox" name="checkbox_name[]" id="checkbox_name_1″ />1<br /> <input type="checkbox" name="checkbox_name[]" id="checkbox_name_2″ />2<br />
<input type="checkbox" name="checkbox_name[]" id="checkbox_name_3″ />3<br />
<input type="checkbox" name="checkbox_name[]" id="checkbox_name_4″ />4<br />
<input type="checkbox" name="checkedAll" id="checkedAll"/>全选/取消全选
<script type="text/javascript">
<!--
$(function() {
$("#checkedAll").click(function() {
if ($(this).attr("checked") == true) { // 全选
$("input[name='checkbox_name[]']").each(function() {
$(this).attr("checked", true);
});
} else { // 取消全选
$("input[name='checkbox_name[]']").each(function() {
$(this).attr("checked", false);
});
}
});
});
// -->
</script>

希望本文所述内容能对各位JavaScript程序设计人员有所帮助。

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章