JavaScript之全选/反选/取消,for循环闭包

需求:table中要求点击红色单元格和点击checkbox的效果一样,最后一行点击就是全选、反选、取消选择的效果。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        table{
            width: 400px;
            height: 15px;
            background-color: palegreen;
            text-align: center;
        }
        .check{
            width: 20%;
            background-color: indianred;
        }
        input{
            display: inline-block;
            vertical-align:middle;
        }
        div{
            display: inline-block;
            width: 400px;
        }
        div input{
            display: inline-block;
            width: 20%;
        }
        .select{
            background-color: bisque;
        }
    </style>
</head>
<body>
<table border="1" cellpadding="0" cellspacing="0">
    <tr>
        <td class="check"><input class="inputcheck" type="checkbox"></td>
        <td>富贵竹</td>
        <td>绿萝</td>
    </tr>
    <tr>
        <td class="check"><input class="inputcheck" type="checkbox"></td>
        <td>栀子花</td>
        <td>月季</td>
    </tr>
    <tr>
        <td class="check"><input class="inputcheck" type="checkbox"></td>
        <td>金银花</td>
        <td>菊花</td>
    </tr>
    <tr>
        <td class="check check4"><input class="inputcheck" type="checkbox"></td>
        <td>玫瑰</td>
        <td>百合</td>
    </tr>
    <tr class="select">
        <td><input class="selectall" type="button" value="全选"> </td>
        <td><input class="reserve" type="button" value="反选"> </td>
        <td><input class="cancel" type="button" value="取消"> </td>
    </tr>
</table>
<script>
    var ele= document.getElementsByTagName("input");
    var check= document.getElementsByClassName("check");
    var inputcheck= document.getElementsByClassName("inputcheck");
    var all = document.getElementsByClassName("selectall")[0];
    var reserve = document.getElementsByClassName("reserve")[0];
    var cancel = document.getElementsByClassName("cancel")[0];

    //for循环闭包
    for(var i=0;i<check.length;i++){
        var td =  check[i];
        td.onclick = function () {
            var td =  check[i];
            return function () {
                var input = td.getElementsByTagName("input")[0];
                if(input.checked){
                    input.checked = false;
                }else {
                     input.checked = true;
                }
            }
        }(i)
    }
    //for循环闭包
    for(var i=0;i<inputcheck.length;i++){
        var input =  inputcheck[i];
        input.onclick = function () {
            var input =  inputcheck[i];
            return function () {
                if(input.checked){
                    input.checked = false;
                }else {
                     input.checked = true;
                }
            }
        }(i)
    }

    //全选
    all.onclick=function () {
        for(var i=0;i<ele.length;i++){
            ele[i].checked=true;
        }
    }
    //反选
    reserve.onclick=function () {
        for(var i=0;i<ele.length;i++){
            if(ele[i].checked){
                ele[i].checked=false;
            }
            else {
                ele[i].checked=true;
            }
        }
    }
    //取消
    cancel.onclick =function () {
        for(var i=0;i<ele.length;i++){
            ele[i].checked=false;
        }
    }
</script>
</body>
</html>

原文地址:http://blog.51cto.com/10836356/2299834

时间: 2025-01-15 00:59:13

JavaScript之全选/反选/取消,for循环闭包的相关文章

全选反选取消-js代码

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-

jquery 全选 反选 取消 批量删除

首选引入jquery 全选 //全选 function myall(){ $("input[name='d[]']").each(function(index,e){ $(this).prop('checked',true); }); } 取消 //当true改为false时为取消 // function no(){ // $("input[name='d[]']").each(function(index,e){ // $(this).prop('checked'

表单javascript checkbox全选 反选 全不选

<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <title>javascript checkbox全选 反选 全不选</title> <meta name="des

全选-反选-取消

1. .checked=false/true: 作用是给方形框勾上或者取消. checkbox.checked=true; 表示勾选上了. 代码如下: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> .hide{ display:none } .c1

JavaScript、全选反选-课堂笔记

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>全选反选</title> </head> <body> <input type="button" value="全选" id="all"> <input t

全选反选取消

http://www.mamicode.com/info-detail-1466046.html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> .edit-mode{ padding:10px; } .editing{ padding:10px;

JavaScript下全选反选的Demo程序里实现checkmeonly函数 DOM

<!doctype html>   <html lang="en">   <head>   <meta charset="UTF-8">   <meta name="Generator" content="EditPlus®">   <meta name="Author" content="">   <meta

使用JavaScript完成表格的全选与取消

<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>使用JavaScript实现全选与取消</title> <script> //选择all复选框,判断每个子复选框的checked值是否与all复选框的值一样 function chooseAll() { var flag=document.getElementById("

购物车计算总价、全选、取消

<script type="text/javascript" language="javascript"> function gouwu(obj){ var fruits=document.getElementByName("fruit"); var totalPrice=0; //遍历所有的checkbox,计算新的总价 for(var i=0;i<fruits.length;i++){ //判断是否选择 if(fruits[