javascript 可以全選反選刪除的表格(比較全面的操作了表格)

來源:互聯網
上載者:User

<!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>
    <title>可以全選反選刪除的表格</title>
    <style type="text/css">
        body,table
        {
            margin:0;
            padding:0;
            font-size:14px;
        }           
        table,tr,th,td
        {
            border:1px solid #cdc;
        }
        th
        {
            background-color:green;
            width:100px;
        }
        .oddColor
        {
            background-color:#ccc;
        }
        .evenColor
        {
            background-color:#fcf;
        }
        .overColor
        {
            background-color:#dff;
        }
    </style>
    <script type="text/javascript">
        //定義嵌套數組
        var datas = [["張三", 30, "南昌"], ["李四", 25, "北京"], ["王五", 20, "鄭州"],
                    ["趙六", 19, "武漢"], ["李莫", 18, "深圳"], ["羅成", 33, "重慶"],
                    ["王平", 31, "天津"], ["劉萍", 22, "上海"], ["楊麗", 17, "石家莊"],
                    ["郭麗", 30, "廣州"]];
        //動態建立表格
        function CreateMyTable() {
            var tblMain = document.getElementById("tblMain");
            var rowsCount = tblMain.rows.length;
            var addRow;
            var addCol;
            var detailInfos;
            for (var i = 0; i < datas.length; i++) {
                addRow = tblMain.insertRow(rowsCount - 1);//控制資料行添加到倒數第二列
                addCol = addRow.insertCell(-1);
                addCol.innerHTML = "<input type='checkbox' name='item' />";
                addCol.align = "center";  //控制列置中
                detailInfos = datas[i];
                for (var j = 0; j < detailInfos.length; j++) {
                    addCol = addRow.insertCell(-1);
                    addCol.innerHTML = detailInfos[j];
                }
                addCol = addRow.insertCell(-1);
                addCol.innerHTML = "<input type='button' id='btnDel" + i + "' value='刪除' onclick='btnDel(this)' />";
                addCol.align = "center";  //控制列置中
                rowsCount++;
            }
            TableColor();
        }
        //設定網格間隔色和高亮顯示
        var oldClassName;             //記住行的背景色
        function TableColor() {
            var tblMain = document.getElementById("tblMain");
            var rowNodes = tblMain.rows;

            for (var i = 1; i < rowNodes.length-1; i++) {        //除去首行和末行
                if (i % 2 == 0) {
                    rowNodes[i].className = "evenColor";
                }
                else {
                    rowNodes[i].className = "oddColor";
                }
                rowNodes[i].onmouseover = function () {
                    oldClassName = this.className;
                    this.className = "overColor";
                }
                rowNodes[i].onmouseout = function () {
                    this.className = oldClassName;
                }
            }
        }
        //複選框全選函數
        function checkAll() {
            var currentCheckNode = event.srcElement;
            var checkAllNodes = document.getElementsByName("all");
            //把沒有點擊的全選複選框去除複選
            for (var i = 0; i < checkAllNodes.length; i++) {
                if (currentCheckNode != checkAllNodes[i]) {
                    checkAllNodes[i].checked = false;
                }
            }
            var checkItemNodes = document.getElementsByName("item");
            for (var i = 0; i < checkItemNodes.length; i++) {
                checkItemNodes[i].checked = currentCheckNode.checked;
            }
        }

        //按鈕選擇函數
        function btnCheckboxSel(index) {
            var checkItemNodes = document.getElementsByName("item");
            for (var i = 0; i < checkItemNodes.length; i++) {
                if (index == 2) {
                    checkItemNodes[i].checked = !checkItemNodes[i].checked;
                }
                else {
                    checkItemNodes[i].checked = index;
                }
            }
        }

        //每行的刪除按鈕函數
        function btnDel(btn) {
            var tblMain = document.getElementById("tblMain");
            var delRowNode = btn.parentNode.parentNode;
            var sMsg = "您是否要刪除 姓名為:【" + delRowNode.cells[1].innerText + "】,年齡為:【" +
                            delRowNode.cells[2].innerText + "】,城市為:【" +
                            delRowNode.cells[3].innerText + "】 的資料?";
            if (window.confirm(sMsg)) {
                tblMain.tBodies[0].removeChild(delRowNode);
                TableColor();
            }
        }
        //刪除所選項按鈕函數
        function btnDelSelectRow() {

            var arrDel = new Array();
            var pos = 0;
            var itemNodes = document.getElementsByName("item");
            for (var i = 0; i < itemNodes.length; i++) {
                if (itemNodes[i].checked) {
                    arrDel[pos] = itemNodes[i].parentNode.parentNode;
                    pos++;
                }
            }

            if (pos <= 0) {
                return;
            }

            if (!window.confirm("是否要刪除選擇的資料?"))
                return;

            var tblMain = document.getElementById("tblMain");
            for (var i = 0; i < arrDel.length; i++) {
                tblMain.tBodies[0].removeChild(arrDel[i]);
            }
        }
        window.onload = CreateMyTable;
    </script>
</head>
<body>
    <table id="tblMain" cellspacing="0" cellpadding="10px" align="center">
        <tbody>
            <tr>
                <th><input type="checkbox" name="all" onclick="checkAll()" />全選</th>
                <th>姓名</th>
                <th>年齡</th>
                <th>城市</th>
                <th>操作</th>
            </tr>
            <tr>
                <th><input type="checkbox" name="all" onclick="checkAll()" />全選</th>
                <th colspan="4">
                    <input type="button" value="全選" onclick="btnCheckboxSel(1)" />
                    <input type="button" value="全清" onclick="btnCheckboxSel(0)" />
                    <input type="button" value="反選" onclick="btnCheckboxSel(2)" />
                    <input type="button" value="刪除所選項" onclick="btnDelSelectRow()" />
                </th>
            </tr>
        </tbody>       
    </table>
</body>
</html>

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.