通过JS,全选当前页面所有的复选框

简介:   最近在做项目时,遇到一个这样的需求,就是在多级菜单中,选中二级的复选框,默认将它下面的三级复选框全部选中,若选中一级的复选框,默认的将它下面的二级的和三级的复选框全部选中,通过JS,可以得到当前页面所有的复选框,但对于如何判断子级的复选框也能选中,就有些不太明白了,向朋友请教了下,呵呵,终...

  最近在做项目时,遇到一个这样的需求,就是在多级菜单中,选中二级的复选框,默认将它下面的三级复选框全部选中,若选中一级的复选框,默认的将它下面的二级的和三级的复选框全部选中,通过JS,可以得到当前页面所有的复选框,但对于如何判断子级的复选框也能选中,就有些不太明白了,向朋友请教了下,呵呵,终于拨云见天了,感谢,方法如下,给遇到我类似需求的朋友一个参考!

  1、首先得到当前页面所有的复选框,这个有两种方法:定义最外层的DIV的ID为chks的话
  法一:var ipt = document.getElementById("chks").getElementsByTagName("input");

       法二:var inputs = document.getElementsByTagName("input");
  for(var i=0;i<inputs.length;i++){
   if(inputs[i].type == "checkbox"){}

  }

这样也行,只不过法二比较麻烦些。

  2、判断级联,其实方法挺简单的,大致这样,一级的ID为a1,a2,a3,二级的为a1b1,a1b2,a2b1,a2b2,a2b3样的,三级的为a1b1c1,a1b1c2,a1b1,c3,a1b2c1,a1b2c2,a1b2c3等等,然后就可以用indexOf来判断是否是子级了,说了这么多,下面将整个代码贴出来。

<html>
<head>
 <title></title>
<script type="text/javascript">
 function mselect(chk){
  var id = chk.id//获取当前复选框的ID
  var chked = chk.checked;//将当前复选框选中,
  var ipt = document.getElementById("chks").getElementsByTagName("input");
  for(var i=0; i<ipt.length; i++){
   //判断a1b1是否是a1的子级,若是的话,返回0,若不是,则返回-1
   if(ipt[i].id.indexOf(id)>-1){
    ipt[i].checked = chked;
    }
   }
  }
</script>
</head>
<body>
 <div id="chks">
<input type="checkbox" value="0" id="a001" onclick="mselect(this);" >一级<br>
&nbsp;&nbsp;&nbsp;├──<input type="checkbox" value="0" id="a001001" onclick="mselect(this);"  >二级<br>
&nbsp;&nbsp;&nbsp;├──<input type="checkbox" value="0" id="a001002" onclick="mselect(this);"  >二级<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;├──<input type="checkbox" value="0" id="a001002001" onclick="mselect(this);"  >三级<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;├──<input type="checkbox" value="0" id="a001002002" onclick="mselect(this);"  >三级<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;├──<input type="checkbox" value="0" id="a001002003" onclick="mselect(this);"  >三级<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;├──<input type="checkbox" value="0" id="a001002003001" onclick="mselect(this);"  >四级<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;├──<input type="checkbox" value="0" id="a001002003002" onclick="mselect(this);"  >四级<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;├──<input type="checkbox" value="0" id="a001002003003" onclick="mselect(this);"  >四级<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;├──<input type="checkbox" value="0" id="a001002003004" onclick="mselect(this);" >四级<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;├──<input type="checkbox" value="0" id="a001002003005" onclick="mselect(this);"  >四级<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;├──<input type="checkbox" value="0" id="a001002003006" onclick="mselect(this);"  >四级<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;├──<input type="checkbox" value="0" id="a001002004" onclick="mselect(this);"  >三级<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;├──<input type="checkbox" value="0" id="a001002005" onclick="mselect(this);"  >三级<br>
&nbsp;&nbsp;&nbsp;├──<input type="checkbox" value="0" id="a001003" onclick="mselect(this);"  >二级<br>
<input type="checkbox" value="0" id="a002" onclick="mselect(this);"  >一级<br>
</div>
</body>
</html>

运行前后的效果图如下:

img_7842339dba54e7defbe738745d7c6f45.jpg  img_8fafde46c9273de7afc7057cef632760.jpg

目录
相关文章
|
2月前
|
前端开发 JavaScript API
前端JS读取文件内容并展示到页面上
前端JavaScript使用FileReader API读取文件内容,支持文本类型文件。在文件读取成功后,可以通过onload事件处理函数获取文件内容,然后展示到页面上。
67 2
前端JS读取文件内容并展示到页面上
|
1月前
|
Web App开发 前端开发 JavaScript
JavaScript动态渲染页面爬取——Selenium的使用(一)
JavaScript动态渲染页面爬取——Selenium的使用(一)
|
1月前
|
Web App开发 数据采集 JavaScript
JavaScript动态渲染页面爬取——Selenium的使用(二)
JavaScript动态渲染页面爬取——Selenium的使用(二)
|
1月前
|
JavaScript 前端开发
Javascript:获取、设置复选框的勾选状态
Javascript:获取、设置复选框的勾选状态
45 1
|
2月前
|
JavaScript 前端开发
js 回到页面顶部
本文提供了一个JavaScript函数`scrollToTop`,用于平滑滚动页面回到顶部。该函数利用`requestAnimationFrame`和`window.scrollTo`方法逐步减少滚动条距离,直到页面完全回到顶部。
30 1
|
1月前
|
JavaScript 前端开发 API
JavaScript全屏,监听页面是否全屏
JavaScript全屏,监听页面是否全屏
48 0
|
1月前
|
前端开发 JavaScript
JavaScript动态渲染页面爬取——CSS位置偏移反爬案例分析与爬取实战
JavaScript动态渲染页面爬取——CSS位置偏移反爬案例分析与爬取实战
|
1月前
|
存储 JSON JavaScript
JavaScript动态渲染页面爬取——Pyppeteer爬取实战
JavaScript动态渲染页面爬取——Pyppeteer爬取实战
|
2月前
|
JavaScript 前端开发
js怎么定位不同的页面元素
在JavaScript中,有多种方法定位和选择页面元素。
|
2月前
|
JavaScript 前端开发
[收藏]用JavaScript让弹出页面以最小化的形式出现在状态栏中
[收藏]用JavaScript让弹出页面以最小化的形式出现在状态栏中