js中实现table的插入、修改、删除
来源:互联网 发布:动漫我们的存在知乎 编辑:程序博客网 时间:2024/04/29 18:31
进来工作慢慢远离web、远离js,看着自己这些年来学习过程中写过的上百个的js demo,感觉还是把它们发上来吧。虽然它们不够完善,但对于js初学者还是比较有用的。整理一下慢慢发上来,算是留念吧。
好了,第一从table开始吧
就是上边是一个表,下边是一些录入控件text ,select
实现了:插入 ,删除,修改,读取,验证类型唯一性(每种类型只能输入一个记录)
文中的内容直接存成html就能看到效果,所以我就不贴图片了。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
</HEAD>
<script>
var flg = false;
var selectedColor = "#99CCCC";
var initColor = "#ffff99";
var selectedRowIndex = "";
var editObj;
function add() {
var cell;
var textNode;
// add head
var type = document.getElementsByName("type")[0];
head = type.options[type.selectedIndex].text;
//check exist
var hiddenHeads = document.getElementsByName("hiddenHead");
for (i = 0; i < hiddenHeads.length; i++) {
if (hiddenHeads[i].value == type.value) {
alert("这个类型的记录已经存在");
return;
}
}
//add row
tbl = document.getElementById("paramTbl");
rowsLen = tbl.rows.length;
row = tbl.insertRow(rowsLen);
//create head tag
textNode = document.createTextNode(head);
cell = row.insertCell(0)
cell.setAttribute("hight", "22");
cell.appendChild(textNode);
row.appendChild(cell);
//add param tag
for (i = 1; i < 4; i++) {
paramValue = document.getElementsByName("param" + i)[0].value;
textNode = document.createTextNode(paramValue);
cell = row.insertCell(i)
cell.setAttribute("hight", "22");
cell.appendChild(textNode);
row.appendChild(cell);
}
//add head value
hiddenHead = document.createElement("<input type='hidden' name='hiddenHead' value='" + type.value + "'/>");
cell = row.insertCell(4)
cell.setAttribute("hight", "22");
cell.appendChild(hiddenHead);
row.appendChild(cell);
//add param value
for (i = 5; i < 8; i++) {
paramValue = document.getElementsByName("param" + (i - 4))[0].value;
hidden = document.createElement("<input type='hidden' name='hiddenParam" + (i - 4) + "' value='" + paramValue + "'/>");
cell = row.insertCell(i)
cell.style.display = 'none';
cell.appendChild(hidden);
row.appendChild(cell);
}
row.onclick = function() {
rowClick(this);
};
row.bgColor = initColor;
init();
}
function edit() {
tbl = document.getElementById("paramTbl");
if (selectedRowIndex == "") {
alert("please select a row");
return;
}
for (i = 1; i < 4; i++) {
paramObj = document.getElementsByName("param" + i)[0];
hiddenObj = document.getElementsByName("hiddenParam" + i)[selectedRowIndex - 1];
hiddenObj.value = paramObj.value;
editObj.cells[i].innerText = paramObj.value;
}
init();
}
function del() {
tbl = document.getElementById("paramTbl");
tbl.deleteRow(selectedRowIndex);
selectedRowIndex = "";
init();
}
function rowClick(obj) {
tbl = document.getElementById("paramTbl");
if (selectedRowIndex != "") {
tbl.rows[selectedRowIndex].bgColor = initColor;
}
selectedRowIndex = obj.rowIndex;
obj.bgColor = selectedColor;
//reset select
var type = document.getElementsByName("type")[0];
var hiddenHead = document.getElementsByName("hiddenHead")[selectedRowIndex - 1];
var opts = type.options;
if (flg) {
alert(selectedRowIndex - 1);
alert(hiddenHead);
alert(hiddenHead.value);
}
for (i = 0; i < opts.length; i++) {
if (opts[i].value == hiddenHead.value) {
opts[i].selected = true;
}
}
//copy param value
for (i = 1; i < 4; i++) {
paramObj = document.getElementsByName("param" + i)[0];
hiddenObj = document.getElementsByName("hiddenParam" + i)[selectedRowIndex - 1];
paramObj.value = hiddenObj.value;
//alert(hiddenObj.value);
}
editObj = obj;
}
function init() {
for (i = 1; i < 4; i++) {
param = document.getElementsByName("param" + i)[0];
param.value = "";
}
var type = document.getElementsByName("type")[0];
type.options[0].selected = true;
}
function test() {
hiddenObjs = document.getElementsByName("hiddenParam1")
for (i = 0; i < hiddenObjs.length; i++) {
alert(hiddenObjs[i].value);
}
var hiddenHeads = document.getElementsByName("hiddenHead");
for (i = 0; i < hiddenHeads.length; i++) {
alert(hiddenHeads[i].value);
}
}
function test2() {
if (flg) {
flg = false;
} else {
flg = true;
}
}
function reset() {
tbl = document.getElementById("paramTbl");
if (selectedRowIndex != "") {
tbl.rows[selectedRowIndex].bgColor = initColor;
selectedRowIndex = "";
}
for (i = 1; i < 4; i++) {
param = document.getElementsByName("param" + i)[0];
param.value = "";
}
}
</script>
<BODY>
<div style="height:132px; width:100%; overflow-x:auto; overflow-y:auto; background-color:#ffff99;">
<table id="paramTbl" width="100%">
<tr>
<td>类型</td>
<td>参数1</td>
<td>参数二</td>
<td>参数三</td>
</tr>
</table>
</div>
<table>
<tr>
<td>
<select name="type" onchange="reset()">
<option value="typeA">类型A</option>
<option value="typeB">类型B</option>
</select>
</td>
<td>
<input type="text" name="param1"/>
</td>
<td>
<input type="text" name="param2"/>
</td>
<td>
<input type="text" name="param3"/>
</td>
</tr>
<tr>
<td><input type="button" onclick="add()" value="add"/></td>
<td><input type="button" onclick="edit()" value="edit"/></td>
<td><input type="button" onclick="del()" value="del"/></td>
<td><!--<input type="button" onclick="test()" value="test"/>--></td>
</tr>
</table>
<!--
<td><input type="button" onclick="test2()" value="test2"/></td>
<td><input type="button" onclick="alert(selectedRowIndex)" value="test2"/></td>
-->
</BODY>
</HTML>
- js中实现table的插入、修改、删除
- Table中删除Tr的JS实现
- 基于table的js目录树的实现,添加修改删除
- 大根堆的插入、删除、修改优先级实现
- JS修改Table中Td的值
- table control的修改/排序/删除功能实现实例
- table control的修改/排序/删除功能实现实例
- table control的修改/排序/删除功能实现实例
- table control的修改/排序/删除功能实现实例
- 用java实现对MySql数据库中数据的读取、插入、修改和删除
- SQL数据库的表table操作方法:查询+插入+删除+增加+修改+替换+排序+运算
- 数据库的插入、修改、删除操作(java实现)
- C++实现双向链表的创建,插入,修改,删除
- 动态顺序表的实现,插入删除查找修改...
- js动态增加、插入、修改、删除option
- 数据的插入,修改,删除
- 用js对table进行解析的demo,及用js修改table中文字颜色
- jsp中给table增加删除、修改
- IP地址及子网划分
- 那天,我收获了爱情
- 这论坛不错噢,好好逛逛
- 使用CSS处理长字符串
- 一道ACM题的程序(C语言)
- js中实现table的插入、修改、删除
- ASP.NET26个常用性能优化方法
- 缓冲区溢出漏洞入门介绍 hokersome(原作)
- 内容页访问母版页属性方法之二(MatrerType指令)
- 用shl便利地删除数据库所有表
- 什么都没有。。。
- 如何让EditPlus支持LUA
- QQ 空间免费装扮
- 开博