`
孔雀王子
  • 浏览: 40813 次
  • 性别: Icon_minigender_1
  • 来自: 河北
文章分类
社区版块
存档分类
最新评论

使用JavaScript+DOM实现的直接在HTML网页上进行增、删、查、改操作(附带分页)

阅读更多

     之前的学习过程中一直都是采用Java技术中的MVC模式对数据库数据进行的操作,这两天刚学习了JavaScript和HTML  DOM,感觉JS还是很强大的。于是编写了一个简单的管理系统,可直接利用JavaScript实现HTML页面数据的增、删、查、改操作,当然还有分页的。下面是代码实现:

 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
	<head>
		<title>UserManage.html</title>

		<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
		<meta http-equiv="description" content="this is my page">
		<meta http-equiv="content-type" content="text/html; charset=UTF-8">
		<style type="text/css">
#dis {
	color: green;
	font-size: 12px;
}
</style>

		<script type="text/javascript" src="./js/wpCalendar.js">
</script>
		<script type="text/javascript">

window.onload = function() {

	document.getElementById("btn2").style.display = "none";

}

function UserManage() {

	var name = document.getElementById("name").value;

	var sex = document.getElementById("sex").value;

	var email = document.getElementById("email").value;

	var bir = document.getElementById("bir").value;

	//获取表格节点对象
	var itable = document.getElementById("itable");

	//创建行
	var tr = document.createElement("tr");

	var chk = document.createElement("td");

	var tname = document.createElement("td");

	var tsex = document.createElement("td");

	var temail = document.createElement("td");

	var tbir = document.createElement("td");

	var toper = document.createElement("td");

	var input = document.createElement("input");

	input.setAttribute("type", "checkbox");

	input.setAttribute("id", "chk");

	input.setAttribute("name", "cx");

	var a1 = document.createElement("a");

	a1.setAttribute("href", "#");

	var txt1 = document.createTextNode("编辑");

	a1.appendChild(txt1);

	var a2 = document.createElement("a");

	a2.setAttribute("href", "#");

	var txt2 = document.createTextNode("删除");

	a2.appendChild(txt2);

	var txt3 = document.createTextNode("|")

	chk.appendChild(input);

	tname.appendChild(document.createTextNode(name));

	tsex.appendChild(document.createTextNode(sex));

	temail.appendChild(document.createTextNode(email));

	tbir.appendChild(document.createTextNode(bir));

	toper.appendChild(a1);

	toper.appendChild(txt3);

	toper.appendChild(a2);

	//往行中添加
	tr.appendChild(chk);

	tr.appendChild(tname);

	tr.appendChild(tsex);

	tr.appendChild(temail);

	tr.appendChild(tbir);

	tr.appendChild(toper);

	var itbody = document.getElementById("itbody");

	itbody.appendChild(tr);

	itable.appendChild(itbody);

	a1.onclick = function() {

		document.getElementById("btn1").style.display = "none";

		document.getElementById("btn2").style.display = "block";

		var utr = a1.parentNode.parentNode;

		var utd = utr.childNodes;

		document.getElementById("name").value = utd[1].innerHTML;

		document.getElementById("sex").value = utd[2].innerHTML;

		document.getElementById("email").value = utd[3].innerHTML;

		document.getElementById("bir").value = utd[4].innerHTML;

		var iupdate = document.getElementById("iupdate");

		iupdate.onclick = function() {

			utd[1].innerHTML = document.getElementById("name").value;

			utd[2].innerHTML = document.getElementById("sex").value;

			utd[3].innerHTML = document.getElementById("email").value;

			utd[4].innerHTML = document.getElementById("bir").value;

			document.getElementById("btn1").style.display = "block";

			document.getElementById("btn2").style.display = "none";

			document.getElementById("name").value = "";

			document.getElementById("email").value = "";

			document.getElementById("bir").value = "";

		}

	}

	a2.onclick = function() {

		itbody.removeChild(a2.parentNode.parentNode);

	}

	pagination();

}

var startPage = document.createElement("a");

var pageUp = document.createElement("a");

var pageDown = document.createElement("a");

var endPage = document.createElement("a");

var nowPage = 1;

var pageSize = 2;

function pagination() {

	var itbody = document.getElementById("itbody");

	var trs = itbody.getElementsByTagName("tr");

	var countRecord = trs.length;

	var countPage = (countRecord % pageSize == 0 ? countRecord / pageSize
			: Math.ceil(countRecord / pageSize));

	var dis = document.getElementById("dis");

	if (!dis.hasChildNodes()) {

		displayPage();

	}

	startPage.onclick = function() {

		nowPage = 1;

		startPageInfo(countRecord, trs);

	}

	pageUp.onclick = function() {

		if (nowPage - 1 > 1) {

			nowPage -= 1;

		} else {

			nowPage = 1;

			startPageInfo(countRecord, trs);

		}

		var startIndex = (nowPage - 1) * pageSize;

		var endIndex = startPage + pageSize;

		pageInfo(startIndex, endIndex, countRecord, trs);

	}

	pageDown.onclick = function() {

		if (nowPage + 1 >= countPage) {

			nowPage = countPage;

		} else {

			nowPage += 1;

		}

		var startIndex = (nowPage - 1) * pageSize;

		var endIndex = startIndex + pageSize;

		pageInfo(startIndex, endIndex, countRecord, trs);

	}

	endPage.onclick = function() {

		nowPage = countPage;

		if (nowPage > 1) {

			var startIndex = (nowPage - 1) * pageSize;

			for ( var i = 0; i < countRecord; i++) {

				if (i < startIndex) {

					trs[i].style.display = "none";

				} else {

					trs[i].style.display = "block";

				}

			}

		} else {

			startPageInfo(countRecord, trs);

		}

	}

}

function startPageInfo(countRecord, trs) {

	if (countRecord <= 2) {

		for ( var i = 0; i < pageSize; i++) {

			trs[i].style.display = "block";

		}

	} else {

		for ( var j = 2; j < countRecord; j++) {

			trs[j].style.display = "none";

		}

	}

}

function pageInfo(startIndex, endIndex, countRecord, trs) {

	for ( var i = 0; i < countRecord; i++) {

		if (i >= startIndex && i < endIndex) {

			trs[i].style.display = "block";

		} else {

			trs[i].style.display = "none";
		}

	}

}

function displayPage() {

	startPage.appendChild(document.createTextNode("首页"));

	startPage.setAttribute("href", "#");

	pageUp.appendChild(document.createTextNode("上一页"));

	pageUp.setAttribute("href", "#");

	pageDown.appendChild(document.createTextNode("下一页"));

	pageDown.setAttribute("href", "#");

	endPage.appendChild(document.createTextNode("末页"));

	endPage.setAttribute("href", "#");

	var disdiv = document.getElementById("dis");

	disdiv.appendChild(startPage);

	disdiv.appendChild(pageUp);

	disdiv.appendChild(pageDown);

	disdiv.appendChild(endPage);

}
</script>

	</head>

	<body>
		<div align="center">
			<h1>
				显示所有的用户界面
			</h1>

			<div
				style="width: 350px; border: 1px red solid; margin-bottom: 100px; padding: 10px 10%">

				<table border="1px" cellpadding="0" cellspacing="0" id="itable">
					<thead>
						<tr>
							<th>
								<input type="checkbox" name="chks" id="ichk" />
							</th>
							<th>
								名称
							</th>
							<th>
								性别
							</th>
							<th>
								邮箱
							</th>
							<th>
								出生日期
							</th>
							<th>
								操作
							</th>
						</tr>
					</thead>
					<tbody id="itbody"></tbody>
				</table>
				<br />
				<div id="dis"></div>
			</div>

			<div style="width: 350px; border: 1px blue solid;">
				<form>
					<table>
						<tr>
							<td>
								用户名:
							</td>
							<td>
								<input type="text" name="name" id="name" />
							</td>
						</tr>
						<tr>
							<td>
								性别:
							</td>
							<td>
								<select id="sex">
									<option value="男">
										男
									</option>
									<option value="女">
										女
									</option>
								</select>
							</td>
						</tr>

						<tr>
							<td>
								邮箱:
							</td>
							<td>
								<input type="text" name="email" id="email" />
							</td>
						</tr>
						<tr>
							<td>
								出生日期:
							</td>
							<td>
								<input type="text" id="bir" name="bir"
									onfocus="showCalendar(this)" readonly />
							</td>
						</tr>

						<tr id="btn1">
							<td colspan="2">
								<input type="button" value="添加" id="iadd" onclick="UserManage()" />
							</td>
						</tr>
						<tr id="btn2">
							<td colspan="2">
								<input type="button" value="更新" id="iupdate" />
							</td>
						</tr>
					</table>
				</form>
			</div>
		</div>
	</body>
</html>



 

 

0
1
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics