亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 語言 > JavaScript > 正文

js實現的捐贈管理完整實例

2024-05-06 16:14:54
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了js實現的捐贈管理完整實例,包括了html頁面、js腳本及css樣式的完整實現代碼,具有一定參考借鑒價值,需要的朋友可以參考下
 

本文實例講述了js捐贈管理完整實現方法。分享給大家供大家參考。具體實現方法如下:

index.html頁面如下:

 

復制代碼代碼如下:
<!DOCTYPE html>  
<html xmlns="http://www.w3.org/1999/xhtml">  
<head>  
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
    <title>js捐贈管理</title>  
    <link href="css/css.css" rel="Stylesheet" type="text/css" />  
    <script type="text/javascript">  
        //受捐單位數組  
        var listOrgs = [  
            { "id": "1", "comName": "壹基金" },  
            { "id": "2", "comName": "宋慶齡基金" },  
            { "id": "3", "comName": "慈濟基金" },  
            { "id": "4", "comName": "紅十字會" },  
            { "id": "5", "comName": "狼圖騰" }  
        ];  
        //給listOrgs數組對象動態添加一個匿名方法  
        listOrgs.getOrgsById = function (id) {  
            for (var i = 0; i < listOrgs.length; i++) {  
                if (listOrgs[i].id == id) {  
                    return listOrgs[i];//返回一個對象  
                }  
            }  
        };  
  
        //捐款數據數組  
        var listData = [  
            { "id": "1", "perName": "成龍", "orgId": "1", "money": "10000", "date": "2012-3-3" },  
            { "id": "2", "perName": "李連杰", "orgId": "2", "money": "10000", "date": "2012-3-3" },  
            { "id": "3", "perName": "陳光標", "orgId": "3", "money": "10000", "date": "2012-3-3" },  
            { "id": "4", "perName": "胡錦濤", "orgId": "1", "money": "10000", "date": "2012-3-3" },  
            { "id": "5", "perName": "周星池", "orgId": "2", "money": "10000", "date": "2012-3-3" },  
            { "id": "6", "perName": "黎明", "orgId": "3", "money": "10000", "date": "2012-3-3" },  
            { "id": "7", "perName": "狼人", "orgId": "3", "money": "10000", "date": "2012-3-3" },  
            { "id": "8", "perName": "狂魔", "orgId": "3", "money": "10000", "date": "2012-3-3" },  
            { "id": "9", "perName": "三瘋", "orgId": "3", "money": "10000", "date": "2012-3-3" }  
        ];  
        //分頁查詢數組  
        listData.fenyeQuery = function (pageNow, pageSize) {  
            var res = new Array();  
            //1.按pageSize為5,第1頁就是listData[0]-listData[4],第2頁就是listData[5]-listData[9]  
            //第3頁就是listData[10]-listData[14]  
  
            var start = (pageNow - 1) * pageSize;  
            var end = listData.length > (pageNow * pageSize) ? (pageNow * pageSize) : listData.length;  
  
            for (var i = start ; i < end; i++) {  
                res[res.length] = listData[i];  
            }  
            return res;  
        };  
  
        listData.queryByOrId = function (orid) {  
            var arr = new Array();  
            for (var i = 0; i < listData.length; i++) {  
                if (listData[i].orgId == orid) {  
                    arr[arr.length] = listData[i];  
                }  
            }  
  
            return arr;  
        };  
  
        listData.idNum = listData.length;  
  
        listData.addRec = function(rec) {  
            listData.idNum++;  
            var newRec = { "id": listData.idNum, "perName": rec.perName, "orgId": rec.orgId, "money": rec.money, "date": rec.date };  
            listData[listData.length] = newRec;  
            return newRec;  
        }; 

 

        listData.updateRec = function(obj) {  
            for (var i = 0; i < listData.length; i++) {  
                if (listData[i].id = obj.id) {  
                    listData[i] = obj;  
                    break;  
                }  
            }  
        };  
  
        //定義一個全局的變量 ,檢測是否取消個性  
        var isCancelUpdate = false;  
        //定義三個文本input控件  
        var InputPerName = document.createElement("input");  
        InputPerName.type = "text";  
  
        var InputMoney = document.createElement("input");  
        InputPerName.type = "text";  
  
        var InputDate = document.createElement("input");  
        InputPerName.type = "text";  
  
        var SeleteOrg = document.createElement("select");  
  
        listData.delRecById = function (id) {  
            for (var i = 0; i < listData.length; i++) {  
                if (listData[i].id == id) {  
                    //刪除  
                    /*  
                    1.將從這個ID所在的位置開始,將后面的每一個元素都往前面移動一位  
                    2.最后一個元素重復了,要將其清除  
                    */  
                    for (var j = i; j < listData.length - 1; j++) {  
                        listData[j] = listData[j + 1];  
                    }  
                }  
            }  
            listData.length = listData.length - 1;  
        };  
  
        //把文本換成input文本框  
        function txtToInput(tdName, inputName) {  
            tdName.setAttribute("oldValue", tdName.innerHTML);//先保存原來的內容,如果取消,就恢復  
            inputName.value = tdName.innerHTML;  
            tdName.appendChild(inputName);  
            tdName.removeChild(tdName.firstChild);  
        }  
  
        function txtToSelect(tdName, selObj) {  
            tdName.appendChild(selObj);  
            tdName.removeChild(tdName.firstChild);  
            selObj.value = tdName.getAttribute("orgId");  
        }  
  
        function selectorText(tdName) {  
            var orid = SeleteOrg.value;  
            var orgName = listOrgs.getOrgsById(orid).comName;  
           // tdName.setAttribute("orgId", SeleteOrg.value);  
            tdName.innerHTML = orgName;  
        }  
  
        //把input變回文本  
        function InputToTxt(tdName, inputName) {  
            //如果點擊的是取消  
            if (isCancelUpdate) {  
                tdName.innerHTML = tdName.getAttribute("oldValue");  
                return;  
            }  
            //點擊確定修改  
            tdName.innerHTML = inputName.value;  
        }  
          
        //把select控件變回文本  
        function seleToTxt(tdName, selName) {  
           // tdName.appendChild(selName);  
            var orgId = SeleteOrg.value;  
            //刪除之前的  
            tdName.innerHTML = (listOrgs.getOrgsById(orgId)).comName;  
        }  
  
        //取消修改  
        function CancelUp(obj) {  
            isCancelUpdate = true;//點擊的是取消  
            doCancel(obj);  
            isCancelUpdate = false;  
        }  
  
        function  doCancel(obj) {  
            var trCur = obj.parentElement.parentElement;  
            var tds = trCur.childNodes;  
            //全部使用原始的td下面的值(保存在Attribute中)  
            tds[1].innerHTML = tds[1].getAttribute("oldValue");  
            tds[2].innerHTML = listOrgs.getOrgsById(tds[2].getAttribute("orgId")).comName;  
            tds[3].innerHTML = tds[3].getAttribute("oldValue");  
            tds[4].innerHTML = tds[4].getAttribute("oldValue");  
            tds[5].innerHTML = "<a href='#' onclick='DelObj(this)' >刪除</a> <a href='#' onclick='UpObj(this)'>修改</a>";  
           // isCancelUpdate = false;  
            //確定取消成功后就要置trCur為null  
            trCur = null;  
        }  
        var trCur = null;  
  
        function UpObj(obj) {  
            if (trCur != null) {  
                //說明有行處于編輯狀態,要取消其修改  
                isCancelUpdate = true;  
                //取消那一行的編輯  
                doCancel(trCur.childNodes[5].firstChild);//trCur.childNodes[5].firstChild,就是上一行的<a 修改>  
            }  
  
            //得到當前所在的行  
            trCur = obj.parentElement.parentElement;  
            var tds = trCur.childNodes;  
            //捐贈人input修改  
            txtToInput(tds[1], InputPerName);  
            //金額  
            txtToInput(tds[3], InputMoney);  
            //受捐日期  
            txtToInput(tds[4], InputDate);  
            //下拉選擇單位  
            txtToSelect(tds[2], SeleteOrg);  
  
            //修改鏈接變成取消  
            tds[5].innerHTML = "<a href='#' onclick='doUpObj(this)' >確定</a> <a href='#' onclick='CancelUp(this)'>取消</a>";  
        }  
          
        //確定修改  
        function doUpObj(obj) {  
            isCancelUpdate = false;  
             trCur = obj.parentElement.parentElement;  
            //1.修改數組中對應的記錄  
            var rec = { "id": trCur.childNodes[0].innerHTML, "perName": trCur.childNodes[1].childNodes[0].value, "orgId": trCur.childNodes[2].childNodes[0].value, "money": trCur.childNodes[3].childNodes[0].value, "date": trCur.childNodes[4].childNodes[0].value };  
            //調用方法來修改ListData中相應的記錄  
            listData.updateRec(rec);  
            //2.修改表格中的記錄  
  
            InputToTxt(trCur.childNodes[1], InputPerName);  
            seleToTxt(trCur.childNodes[2], SeleteOrg);  
            InputToTxt(trCur.childNodes[3], InputMoney);  
            InputToTxt(trCur.childNodes[4], InputDate);  
            trCur.childNodes[5].innerHTML = "<a href='#' onclick='DelObj(this)' >刪除</a> <a href='#' onclick='UpObj(this)'>修改</a>"; 

            //trCur.childNodes[2].setAttribute("orgId", SeleteOrg.value); 
            //確定修改成功后就要置trCur為null  
            trCur = null;  
        } 

        //刪除一行數據 

        function DelObj(obj) {  
            //刪除數組中對應的數組  
            //1.要得到選中的行  
            var curTr = obj.parentElement.parentElement;  
            //2.從第一個列中取到id的值  
            var delId = curTr.cells[0].innerHTML;  
            // window.alert(delId);  
            //3.根據id刪除一條記錄(數組中listData)  
            listData.delRecById(delId);  
            //4.刪除表格視圖中的顯示行  
            curTr.parentElement.removeChild(curTr);  
        } 

        function gel(id) {  
            return document.getElementById(id);  
        }  
  
        //1.查詢單位名稱的綁定,selEle是:selet元素節點  
        function LoadOrgList(selEle) {  
            for (var i = 0; i < listOrgs.length; i++) {  
                var opt = new Option(listOrgs[i].comName, listOrgs[i].id);  
                selEle.options.add(opt);  
            }  
        }  
        //2.綁定表格和綁定表格和listData的方法 

        function LoadDataList() {  
            //for (var i = 0; i < listData.length; i++) {  
            //    addRow(listData[i]);  
            //}  
            //分頁顯示  
            showPage();  
        } 

        function addRow(obj) {  
            var trnew = gel("tbList").insertRow(-1);  
            var tdnew = trnew.insertCell(-1);  
            tdnew.innerHTML = obj.id;  
            trnew.insertCell(-1).innerHTML = obj.perName; 

            var trOrgName = trnew.insertCell(-1);  
            trOrgName.setAttribute("orgId", obj.orgId);  
            trOrgName.innerHTML = (listOrgs.getOrgsById(obj.orgId)).comName;  
            trnew.insertCell(-1).innerHTML = obj.money;  
            trnew.insertCell(-1).innerHTML = obj.date;  
            trnew.insertCell(-1).innerHTML = "<a href='#' onclick='DelObj(this)' >刪除</a> <a href='#' onclick='UpObj(this)'>修改</a>";  
        } 

        window.onload = function() {  
            //綁定查詢  
            LoadOrgList(gel("selSearchOrg"));  
            //綁定受捐贈單位  
            LoadOrgList(gel("selAddOrg"));  
            LoadOrgList(SeleteOrg);  
            //綁定表格和listData  
            LoadDataList(); 

            //給新增按鈕綁定一個事件  
            gel("btnAdd").onclick = function() {  
                if ((!(gel("txtName").value)) || (!(gel("txtMoney").value) || (!(gel("txtDate").value)))) {  
                    alert("輸入不能為空");  
                    return;  
                }  
  
                //1.得到輸入的內容,打包成一個對象(按照listData的格式)  
                var arr = { "perName": gel("txtName").value, "orgId": gel("selAddOrg").value, "money": gel("txtMoney").value, "date": gel("txtDate").value };  
                //2.添加到listData數組中  
                var res = listData.addRec(arr);  
                //3.顯示在表格中  
                var trnew = gel("tbList").insertRow(-1);  
                trnew.insertCell(-1).innerHTML = res.id;  
                trnew.insertCell(-1).innerHTML = res.perName;  
  
                var tdOrg = trnew.insertCell(-1);  
                tdOrg.setAttribute("orgId", res.orgId);  
                tdOrg.innerHTML = listOrgs.getOrgsById(res.orgId).comName;  
                trnew.insertCell(-1).innerHTML = res.money;  
                trnew.insertCell(-1).innerHTML = res.date;  
                trnew.insertCell(-1).innerHTML = "<a href='#' onclick='DelObj(this)' >刪除</a> <a href='#' onclick='UpObj(this)'>修改</a>";  
            };  
  
            //給查詢按鈕綁定事件  
            gel("btnSearch").onclick = function () {  
                if (gel("selSearchOrg").value == -1) {  
                    return;  
                }  
  
                //1.獲取要查詢的受捐贈單位的orgid  
                var orgId = gel("selSearchOrg").value;  
                //2.在ListData數組中定義一個根據orgid查詢的方法,并在這里調用  
                var arrRes = listData.queryByOrId(orgId);  
                //3.將舊的表格數據移除顯示,一定要從下到上清空顯示  
                var trs = gel("tbList").rows;  
  
                for (var j = trs.length-1; j>0; j--) {  
                    gel("tbList").deleteRow(j);  
                }  
                //4.顯示新的數據arrRes  
                for (var i = 0; i < arrRes.length; i++) {  
                    addRow(arrRes[i]);  
                }  
            }; 

            //給上一頁綁定事件  
            gel("btnprePage").onclick = function() {  
               if (pageNow > 1) {  
                   pageNow--;  
                   showPage();  
               } else {  
                   alert("已經是第一頁!")  
               }  
            };  
            //給下一頁綁定事件  
            gel("btnnextPage").onclick = function () {  
                if(pageNow<listData.length/pageSize)  
                {  
                    pageNow++;  
                    showPage();  
                }else  
                {  
                    alert("已經是最后一頁!");  
                }  
            };  
        };  
        var pageNow = 1;  
        var pageSize = 5;  
        function showPage() {  
            var trs = gel("tbList").rows;  
  
            for (var j = trs.length - 1; j > 0; j--) {  
                gel("tbList").deleteRow(j);  
            }  
  
            //1.根據pageNow和pageSize返回一個數組  
            var res = listData.fenyeQuery(pageNow, pageSize);  
            for (var i = 0; i < res.length; i++) {  
                addRow(res[i]);  
            }  
        }  
    </script>  
</head>  
<body>  
    <div id="container">  
        <h1>捐贈管理</h1>  
        <div class="search">  
            受捐單位  
            <select id="selSearchOrg">  
                <option value="-1">--請選擇--</option>  
            </select>  
            <input type="button" id="btnSearch" value="查詢" class="btn" /> <input type="button" value="上一頁" class="btn" id="btnprePage" /> <input type="button" value="下一頁" class="btn" id="btnnextPage" /><span id="pageBar"></span>  
        </div>  
        <div class="search">  
            捐贈人:<input type="text" id="txtName" class="inputShort" size="8" />  
            受捐單位:  
            <select id="selAddOrg">  
            </select>  
            金額:<input type="text" id="txtMoney" class="inputShort" size="8" />  
            受捐日期:<input type="text" id="txtDate" class="inputShort" size="10" />  
            <input type="button" id="btnAdd" value="新增" class="btn" />
        </div>  
        <table id="tbList" class="tbList" cellspacing="0" cellpadding="0">  
            <tr class="th">  
                <td>序號</td>  
                <td>捐贈人</td>  
                <td>受捐單位</td>  
                <td>金額</td>  
                <td>受捐日期</td>  
                <td>操作</td>  
            </tr>  
        </table>  
    </div>  
</body>  
</html>

 

css.css如下:

復制代碼代碼如下:
* {  
      margin: 0px;  
      padding: 0px;  
  }  
  
  body {  
      width: 900px;  
      margin: 0px auto;  
      padding-top: 20px;  
  }  
  
  h1 {  
      padding: 15px;  
      text-align: center;  
  }  
  
  #container {  
      width: 900px;  
      height: auto;  
  }  
  
  .header, .search {  
      width: 900px;  
      height: 30px;  
      line-height: 30px;  
      border: 1px solid #0094ff;  
      margin-top: 3px;  
      padding: 0px 5px;  
  }  
  
  .tbList {  
      width: 912px;  
      height: auto;  
  }  
  
      .tbList th {  
          border: 1px solid #000;  
          background: #0094ff;  
          height: 30px;  
          font-weight: bold;  
          line-height: 30px;  
          color: #fff;  
      }  
  
  .inputShort {  
      width: 100px;  
  }  
  
  .btn {  
      width: 70px;  
      height: 25px;  
      line-height: 25px;  
      font-weight: bold;  
      text-align: center;  
  }  
  
  td {  
      border: 1px solid;  
      height: 25px;  
      text-indent: 1em;  
      border-collapse: collapse;  
  }

 

希望本文所述對大家的javascript程序設計有所幫助。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
96sao精品视频在线观看| 久久精品国产成人精品| 97在线观看视频| 国产精品一区久久久| 欧美大尺度在线观看| 成人黄色大片在线免费观看| 欧美国产亚洲视频| 欧美亚洲视频在线看网址| 国产日本欧美在线观看| 国产乱肥老妇国产一区二| 欧洲成人性视频| 国产成人精品最新| 日韩经典第一页| 精品网站999www| 国产精品亚洲片夜色在线| 久久99久久久久久久噜噜| 亚洲国产精品美女| 国产精品美女无圣光视频| 亚洲毛片在线观看| 亚洲自拍av在线| 久久五月情影视| 一区二区三区亚洲| 国产不卡av在线| 91po在线观看91精品国产性色| 国产色综合天天综合网| 亚洲欧洲国产伦综合| 成人免费看吃奶视频网站| 欧美专区福利在线| www欧美日韩| 日韩av免费看| 国产黑人绿帽在线第一区| 911国产网站尤物在线观看| 亚洲自拍高清视频网站| 亚洲成人网久久久| 91视频国产精品| 91精品国产91久久久久久吃药| 成人444kkkk在线观看| 91成人天堂久久成人| 欧美激情按摩在线| 欧美日韩爱爱视频| 精品动漫一区二区三区| 国产成人福利视频| 久久精品视频va| 亚洲欧美激情在线视频| 九九久久国产精品| 亚洲一区二区黄| 日韩av免费在线观看| 91av视频在线免费观看| 色偷偷偷亚洲综合网另类| 国产欧美日韩视频| 色综合久久中文字幕综合网小说| 亚洲偷欧美偷国内偷| 亚洲午夜性刺激影院| 亚洲爱爱爱爱爱| www.日韩系列| 中文字幕视频一区二区在线有码| 91精品国产91久久久久久| 国产又爽又黄的激情精品视频| 最近2019好看的中文字幕免费| 亚洲电影免费观看高清| 成人激情视频在线观看| 日韩精品亚洲元码| 欧美视频在线观看免费| 91国内在线视频| 91视频九色网站| 伊人久久久久久久久久久久久| 国产午夜精品视频| 欧美激情视频免费观看| 色综合天天综合网国产成人网| 国内精品美女av在线播放| 亚洲人成电影网站色www| 国产精品成人观看视频国产奇米| 久久成人综合视频| 日韩av最新在线观看| 亚洲国产精彩中文乱码av| 日韩欧美国产一区二区| 欧美国产中文字幕| 国产欧美va欧美va香蕉在| 欧美大片在线免费观看| 91美女福利视频高清| 97国产成人精品视频| 日韩不卡中文字幕| 欧美日韩在线看| 国产精品福利网| 国产欧美日韩免费看aⅴ视频| 欧美一级视频一区二区| 97在线视频国产| 国产精品久久国产精品99gif| 一个色综合导航| 亚洲аv电影天堂网| 中日韩美女免费视频网站在线观看| 色婷婷**av毛片一区| 日韩欧美国产视频| 日韩在线免费av| 在线视频免费一区二区| 日韩精品免费看| 久久久精品亚洲| 欧美黑人狂野猛交老妇| 色婷婷成人综合| 亚洲18私人小影院| 国产欧美精品日韩精品| 欧美激情手机在线视频| 97久久精品人人澡人人爽缅北| 伊人久久久久久久久久久| 亚洲精品中文字幕女同| 国产在线观看精品| 久久精品免费电影| 欧美成年人视频网站| 久久久久久这里只有精品| 欧美福利视频在线| 91大神在线播放精品| 色偷偷av一区二区三区| 久久久欧美精品| 日韩在线精品一区| 亚洲国产精品悠悠久久琪琪| 黄色91在线观看| 中文字幕亚洲综合久久| 国产91精品久久久久| 色综合色综合久久综合频道88| 亚洲香蕉成人av网站在线观看| 国产精品久久久一区| 国产成人精品一区二区| 最近中文字幕2019免费| 亚洲精品久久久久| 亚洲第一区第一页| 国产精品久久久久久久久久三级| 81精品国产乱码久久久久久| 国产亚洲在线播放| 欧美成人黑人xx视频免费观看| 国产精品久久久久久久天堂| 亚洲区中文字幕| 欧美精品福利在线| 91成人精品网站| 亚洲一区亚洲二区亚洲三区| 亚洲白拍色综合图区| 亚洲成av人片在线观看香蕉| 日韩av综合网站| 色七七影院综合| 欧美精品成人91久久久久久久| 国产欧美一区二区三区久久人妖| 久久视频在线看| 全色精品综合影院| 91精品视频专区| 国产日韩在线视频| 欧美电影免费观看大全| 欧美www视频在线观看| 精品精品国产国产自在线| 91亚洲国产成人久久精品网站| 亚洲国产古装精品网站| 国产亚洲精品久久久久动| 亚洲自拍在线观看| 国产精品h在线观看| 欧美精品免费播放| 国产精品老女人精品视频| 2019国产精品自在线拍国产不卡| 日韩精品在线免费观看| 日韩电影中文字幕| 久久艳片www.17c.com| 国产欧美在线视频| 国产精品∨欧美精品v日韩精品| 丰满岳妇乱一区二区三区| 欧美国产一区二区三区| 国产精品福利片| 精品亚洲国产视频|