js简单全选及反选demo效果示例(整理)

简介: js简单全选及反选demo效果示例(整理)
<!doctype html>
<html>
  <head>
    <meta charset="utf-8">
    <title>简单全选及反选</title>
    <script src="http://libs.baidu.com/jquery/1.11.3/jquery.min.js"></script>
    <style>
      * {
        margin: 0;
        padding: 0;
      }
      div {
        width: 300px;
        border: solid 1px #000;
        padding: 20px 0;
        margin: 0 auto;
      }
      span {
        margin-right: 20px;
      }
      a {
        color: green;
      }
    </style>
  </head>
  <body>
    <div>
          <p>
                <input type="checkbox"> <span>全选</span>
                <a href="###">反选</a>
            </p>
          <p>
                <input type="checkbox">选项1
            </p>
          <p>
                <input type="checkbox">选项2
            </p>
          <p>
                <input type="checkbox">选项3
            </p>
          <p>
                <input type="checkbox">选项4
            </p>
          <p>
                <input type="checkbox">选项5
            </p>
    </div>
    <script>
      //给标签增加类名  div.className = '';
      //给所有的输入框都增加checked属性
      // var inps = document.querySelectorAll('input');
      // for( var i =0; i< inps.length; i++){
      // if( i % 2 == 0 ){
      // inps[i].checked = true;
      // }
      // }
      //效果:当点击全选按钮的时候,所有的选项都被选中
      //span内容变成全不选
      //span有两种内容,全选, 全不选  是根据全选按钮是否被选中而定
      //效果:当点击反选按钮的时候,所有的选项取反值
      //效果:当10个选项都被选中即(十个checked都为true)的时候,
      //全选被选中
      var inpFirst = document.querySelector('input');
      var inps = document.querySelectorAll('input');
      var span = document.querySelector('span');
      var fan = document.querySelector('a');
      //全选
      inpFirst.onclick = function() {
        //      this.checked = true;
        for (var i = 1; i < inps.length; i++) {
          inps[i].checked = this.checked;
        }
        // if(this.checked) {
        // span.innerText = '全不选';
        // } else {
        // span.innerText = '全选';
        // }
        checkAll();
      }
      //十个选项
      //设置初始被选中的次数
      for (var i = 1; i < inps.length; i++) {
        inps[i].onclick = function() {
          //检测选项中被选中的个数
          // for(var j = 1, num = 0; j < inps.length; j++) {
          // if(inps[j].checked) {
          // num++;
          // }
          // //      console.log(num);
          // }
          // inpFirst.checked = (inps.length - 1 == num);
          // if(inpFirst.checked) {
          // span.innerText = '全不选';
          // } else {
          // span.innerText = '全选';
          // }
          checkAll();
        }
      }
      //反选
      fan.onclick = function() {
        for (var i = 1; i < inps.length; i++) {
          inps[i].checked = !inps[i].checked;
        }
        checkAll();
      }
      //封装
      function checkAll() {
        for (var j = 1, num = 0; j < inps.length; j++) {
          if (inps[j].checked) {
            num++;
          }
          //      console.log(num);
        }
        inpFirst.checked = (inps.length - 1 == num);
        if (inpFirst.checked) {
          span.innerText = '全不选';
        } else {
          span.innerText = '全选';
        }
      }
      checkAll();
    </script>
  </body>
</html>

相关文章
|
3月前
|
JavaScript
原生js实现复选框(全选/全不选/反选)效果【含完整代码】
原生js实现复选框(全选/全不选/反选)效果【含完整代码】
61 1
|
7月前
|
JavaScript 前端开发 Python
Node.js在Python中的应用实例demo
Node.js在Python中的应用实例demo
|
8月前
|
JavaScript API
使用Node.js访问API的示例
下面是一个使用Node.js访问API的示例代码:
|
8月前
|
JavaScript
js根据月份获取天数和对应的星期demo(整理)
js根据月份获取天数和对应的星期demo(整理)
|
2月前
|
JavaScript
js开发:请解释什么是ES6的扩展运算符(spread operator),并给出一个示例。
ES6的扩展运算符(...)用于可迭代对象展开,如数组和对象。在数组中,它能将一个数组的元素合并到另一个数组。例如:`[1, 2, 3, 4, 5]`。在对象中,它用于复制并合并属性,如`{a: 1, b: 2, c: 3}`。
12 3
|
2月前
|
JavaScript
js开发:请解释什么是ES6的默认参数(default parameters),并给出一个示例。
ES6允许在函数参数中设置默认值,如`function greet(name = &#39;World&#39;) {...}`。当调用函数不传入`name`参数时,它将默认为&#39;World&#39;,提升代码简洁性和可读性。例如:`greet()`输出&quot;Hello, World!&quot;,`greet(&#39;Alice&#39;)`输出&quot;Hello, Alice!&quot;。
16 4
|
2月前
|
JavaScript 前端开发
js开发:请解释什么是ES6的解构赋值(destructuring assignment),并给出一个示例。
ES6的解构赋值简化了JavaScript中从数组和对象提取数据的过程。例如,`[a, b, c] = [1, 2, 3]`将数组元素赋值给变量,`{name, age} = {name: &#39;张三&#39;, age: 18}`则将对象属性赋值给对应变量,提高了代码的可读性和效率。
|
2月前
|
SQL JavaScript
js开发:请解释什么是ES6的模板字符串(template string),并给出一个示例。
ES6的模板字符串以反引号包围,支持变量和表达式插入以及多行书写。例如,插入变量值`Hello, ${name}!`,计算表达式`${num1 + num2}`,以及创建多行字符串。模板字符串保留原始空格和缩进,简化了字符串拼接,提高了代码可读性。
19 6
|
2月前
|
JavaScript 前端开发
js开发:请解释什么是事件委托(event delegation),并给出一个示例。
事件委托是JavaScript中优化事件处理的技术,通过绑定事件处理器到共享的父元素,利用事件冒泡机制来处理子元素的事件。这种方法能提升性能、简化代码并降低内存消耗。示例展示了如何在父元素上监听`click`事件,然后通过`event.target`识别触发事件的具体子元素(如`&lt;li&gt;`),实现对动态生成列表项的点击事件处理。
|
2月前
|
存储 JavaScript 前端开发
js开发:请解释什么是回调函数(callback function),并给出一个示例。
回调函数是JavaScript中处理异步编程的一种常见模式,常用于事件驱动和I/O操作。它们作为参数传递给其他函数,在特定条件满足或任务完成后被调用。例如,`asyncOperation`函数接受回调函数`handleResult`,在模拟的异步操作完成后,调用`handleResult`并传递结果。这使得程序员能在操作完成后执行后续任务。
22 1