js全选与取消全选,js 全选内容和取消全选

  js全选与取消全选,js 全选内容和取消全选

  操作环境:Windows7系统,javascript1.8.5版本1.8.5,戴尔G3电脑。

  javascript 怎么实现全选?

  用JS实现表单的全选与反选

  这也是一个练习,就是全选一般的电商购物车,再加一个反选(貌似有反选功能的购物车不多,windows Explorer有)

  

先说全选:

  整理需求。我们先用HTML和CSS来画这个表单。代码如下:

  超文本标记语言

  头

  meta charset=utf-8

  选择所有标题2/标题

  style type=text/css 。换行{

  左边距:500px

  边距-顶部:200px

  }

  表格{

  边框-塌陷:塌陷;

  }

  th{

  边框:1px纯黑;

  高度:45px

  }

  td{

  边框:1px纯黑;

  文本对齐:居中;

  字体粗细:粗体;

  }

  /风格

  /头

  身体

  div class=wrap

  表格单元格间距=0 单元格填充=14

  四羟乙基己二酰胺

  tr

  泰国(Thailand)

  input type= checkbox id= select all onclick= funcAll()

  /th

  Th商品/th

  Th价格/th

  /tr

  /thead

  tbody id=j_tb

  tr

  任务描述

  input type= checkbox class= selectOne onclick= funcon()

  /td

  tdiPhone X/td

  td8000/td

  /tr

  tr

  任务描述

  input type= checkbox class= selectOne onclick= funcon()

  /td

  tdiPad pro/td

  td5000/td

  /tr

  tr

  任务描述

  input type= checkbox class= selectOne onclick= funcon()

  /td

  tdiPad air/td

  td2000/td

  /tr

  tr

  任务描述

  input type= checkbox class= selectOne onclick= funcon()

  /td

  tdApple watch/td

  td2000/td

  /tr

  /tbody

  /表格

  type= button id= backward option value= inverted onclick= func backward()

  /div

  /body

  /html这里,我把鼠标点击事件的函数命名为。都叫“funcAll()”,其中一个叫“funcOne()”,另一个叫“funcBackward()”。CSS主要是给表单添加边框,同时将交界处的边框进行融合,基本上是最简单的外观。

  先说需求2和需求3。逻辑相对简单:

  DOM方法用于分别获取所有选择和单个选择的“输入”元素。所有选择只有一个,直接用getElementById()(id已经提前设置好了)就可以了,而单个选择有四个,是用getElementByClassName()(类已经提前设置好了)得到的,当然得到的是一个数组。

  将获取的所有元素赋给变量,然后通过for循环遍历数组,将所有选中变量的checked属性赋给每个单个变量的checked属性。

  至此,2和3同时求解完毕,代码如下:

  函数funcAll(){

  var select all=document . getelementbyid( select all );

  var selectOnes=document . getelementsbyclassname( selectOne );

  for(var I=0;我兴师动众;I) {//循环遍历,将所有选中框的值赋给每个单选框。

  selectOnes[i]。checked=select all . checked;

  }

  }接下来说第一条:“四行商品全部勾选后,自动勾选“全选”;当有未勾选的产品时,“全选”自动取消。

  在这里,“全选”的状态类似于监听其他所有按钮,一旦改变,就随之改变。所以这种逻辑要写在每行商品单选按钮的鼠标点击事件中。

  我设置了一个变量isAllChecked作为桥。在初始状态下,isAllChecked被定义为true,循环遍历每个单选按钮。一旦检测到任何单选按钮没有被选中,我会将isAllChecked设置为false,跳出循环,并将isAllChecked的值赋给所有按钮。

  这样,只要一个单选按钮没有被选中,所有的单选按钮都会变成未选中状态。代码如下:

  函数funcon(){

  var select all=document . getelementbyid( select all );//函数作用域,所以要重新定义

  var selectOnes=document . getelementsbyclassname( selectOne );

  var isAllChecked=true//将变量定义为控制“全选”按钮的桥梁

  for(var I=0;我兴师动众;i ) {

  if (selectOnes[i].checked===false) {

  isAllChecked=false

  打破;

  }

  }

  selectall . checked=isAllChecked;

  }

再来说说反选

  第一条其实很容易实现。单击反向选择按钮时,在四个单选按钮之间循环,并反转与每个元素对应的选中属性。

  然而,我们前面实现的对所有单项的全选监视实际上是在每个单选按钮的click事件中实现的。也就是说,如果我们不点击单选按钮来改变单选按钮的状态,那么全选监控实际上是无法监控全局的。

  所以,我们可以把监控这部分的代码写入反选择的鼠标点击函数中,最终的代码如下:

  var select all=document . getelementbyid( select all );//函数作用域,所以要重新定义

  var selectOnes=document . getelementsbyclassname( selectOne );

  for(var I=0;我兴师动众;i ) {

  selectOnes[i]。isAllChecked=!selectOnes[i]。已检查;

  }

  funcOne()函数{ };

  var isAllChecked=true//将变量定义为控制“全选”按钮的桥梁

  for(var I=0;我兴师动众;i ) {

  if (selectOnes[i].checked===false) {

  isAllChecked=false

  打破;

  }

  }

  selectall . checked=isAllChecked;

  }最终效果如下:

  推荐:《js基础教程》以上是javascript中如何实现全选的详细内容。更多请关注我们的其他相关文章!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: