gpt4 book ai didi

js实现的捐赠管理完整实例

转载 作者:qq735679552 更新时间:2022-09-28 22:32:09 26 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章js实现的捐赠管理完整实例由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

本文实例讲述了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程序设计有所帮助.

最后此篇关于js实现的捐赠管理完整实例的文章就讲到这里了,如果你想了解更多关于js实现的捐赠管理完整实例的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com