js实现的捐赠管理完整实例
本文实例讲述了js捐赠管理完整实现方法。分享给大家供大家参考。具体实现方法如下
index.html页面如下
<html xmlns="">
<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", "Name": "壹基金" },
{ "id": "2", "Name": "宋庆龄基金" },
{ "id": "3", "Name": "慈济基金" },
{ "id": "4", "Name": "红十字会" },
{ "id": "5", "Name": "狼图腾" }
];
//给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": "成龙", "Id": "1", "money": "10000", "date": "2012-3-3" },
{ "id": "2", "perName": "李连杰", "Id": "2", "money": "10000", "date": "2012-3-3" },
{ "id": "3", "perName": "陈光标", "Id": "3", "money": "10000", "date": "2012-3-3" },
{ "id": "4", "perName": "胡锦涛", "Id": "1", "money": "10000", "date": "2012-3-3" },
{ "id": "5", "perName": "周星池", "Id": "2", "money": "10000", "date": "2012-3-3" },
{ "id": "6", "perName": "黎明", "Id": "3", "money": "10000", "date": "2012-3-3" },
{ "id": "7", "perName": "狼人", "Id": "3", "money": "10000", "date": "2012-3-3" },
{ "id": "8", "perName": "狂魔", "Id": "3", "money": "10000", "date": "2012-3-3" },
{ "id": "9", "perName": "三疯", "Id": "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].Id == 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, "Id": rec.Id, "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("Id");
}
function selectorText(tdName) {
var orid = SeleteOrg.value;
var Name = listOrgs.getOrgsById(orid).Name;
// tdName.setAttribute("Id", SeleteOrg.value);
tdName.innerHTML = Name;
}
//把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 Id = SeleteOrg.value;
//删除之前的
tdName.innerHTML = (listOrgs.getOrgsById(Id)).Name;
}
//取消修改
function CancelUp(obj) {
isCancelUpdate = true;//点击的是取消
doCancel(obj);
isCancelUpdate = false;
}
function doCancel(obj) {
var trCur = obj.parentElement.parentElement;
var tds = trCur.childNodes;
//全部使用原始的td狼蚁网站SEO优化的值(保存在Attribute中)
tds[1].innerHTML = tds[1].getAttribute("oldValue");
tds[2].innerHTML = listOrgs.getOrgsById(tds[2].getAttribute("Id")).Name;
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, "Id": 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("Id", 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].Name, listOrgs[i].id);
selEle.options.add(opt);
}
}
//2.绑定表格和绑定表格和listData的方法
function LoadDataList() {
//for (var i = 0; i < listData.length; i++) {
// addRow(listData[i]);
/
编程语言
- 如何快速学会编程 如何快速学会ug编程
- 免费学编程的app 推荐12个免费学编程的好网站
- 电脑怎么编程:电脑怎么编程网咯游戏菜单图标
- 如何写代码新手教学 如何写代码新手教学手机
- 基础编程入门教程视频 基础编程入门教程视频华
- 编程演示:编程演示浦丰投针过程
- 乐高编程加盟 乐高积木编程加盟
- 跟我学plc编程 plc编程自学入门视频教程
- ug编程成航林总 ug编程实战视频
- 孩子学编程的好处和坏处
- 初学者学编程该从哪里开始 新手学编程从哪里入
- 慢走丝编程 慢走丝编程难学吗
- 国内十强少儿编程机构 中国少儿编程机构十强有
- 成人计算机速成培训班 成人计算机速成培训班办
- 孩子学编程网上课程哪家好 儿童学编程比较好的
- 代码编程教学入门软件 代码编程教程