求table动态添加一行,删除其中一行的js代码 javascript 对表格的操作 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 http://topic.csdn.net/u/20091105/20/6adea4b1-56ad-478a-8f2e-cab781bd848d.html看看这个 很简单的 需要JQUERY库支持。但是明显比你一大堆的代码要简洁明了很多。希望你用的着。<table> <tr> <td colspan="2" align="center"><input type="text" name="BagName" id="BagName" style="width:250px" onkeydown="fun_tab()" /></td> <td align="center"><input name="BagNum" type="text" id="BagNum" style="width:50px" onkeydown='enter2Addtr();' /></td> <td align="center"><input type="button" name="del" id="del" value="删除" onclick="deltr($(this))" /> <input type="button" name="add" id="add" value="增加" onclick="addtr($(this))" /></td> </tr><table><script language="javascript" src="jquery-1.3.2.js"></script><script language="javascript">function addtr(e){ var mytable=e.parent().parent().parent(); e.parent().parent().clone().insertAfter(e.parent().parent()); mytable.find("tr:last-child").find("input:text").val(""); e.css("visibility","hidden"); mytable.find("tr:last-child").find("div").remove(); mytable.find("tr:last-child").find("input:first").focus(); try { myinput(); myajax(); } catch(e){} }function deltr(e){ var mytable=e.parent().parent().parent(); if(mytable.find("tr").size()>=2) { e.parent().parent().remove(); mytable.find("tr:last-child > td:last-child > #add").css("visibility","visible"); } else alert("必须保留至少一条记录!"); }function enter2Addtr() { if (event.keyCode == 13) { addtr($("#add")); } }</script> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <style type="text/css">*{font-size:14px}button{margin:3px} </style> <script type="text/javascript"> var mytable=null; window.onload=function(){ mytable=new CTable("tbl",10); } Array.prototype.each=function(f){for(var i=0;i <this.length;i++) f(this[i],i,this)} function $A(arrayLike){ for(var i=0,ret=[];i <arrayLike.length;i++) ret.push(arrayLike[i]); return ret } Function.prototype.bind = function() { var __method = this, args = $A(arguments), object = args.shift(); return function() { return __method.apply(object, args.concat($A(arguments))); } } function CTable(id,rows){ this.tbl=typeof(id)=="string"?document.getElementById(id):id; if (rows && /^\d+$/.test(rows)) this.addrows(rows) } CTable.prototype={ addrows:function(n){ //随机添加n个tr new Array(n).each(this.add.bind(this)) }, add:function(){ //添加1个tr var self=this; var tr = self.tbl.insertRow(-1),td1= tr.insertCell(-1),td2= tr.insertCell(-1); var chkbox=document.createElement("INPUT") chkbox.type="checkbox" chkbox.onclick=self.highlight.bind(self) td1.appendChild(chkbox) td1.setAttribute("width","35") td2.innerHTML="A: <INPUT NAME=A /> <br />B: <INPUT NAME=B />"; }, del:function(){ //删除所选tr var self=this $A(self.tbl.rows).each(function(tr){if (self.getChkBox(tr).checked) tr.parentNode.removeChild(tr)}) }, up:function(){ //上移所选tr var self=this var upOne=function(tr){ //上移1个tr if (tr.rowIndex>0){ self.swapTr(tr,self.tbl.rows[tr.rowIndex-1]) self.getChkBox(tr).checked=true } } var arr=$A(self.tbl.rows).reverse() if (arr.length>0 && self.getChkBox(arr[arr.length-1]).checked){ for(var i=arr.length-1;i>=0;i--){ if (self.getChkBox(arr[i]).checked){ arr.pop() }else{ break } } } arr.reverse().each(function(tr){if (self.getChkBox(tr).checked) upOne(tr)}); }, down:function(){ var self=this var downOne=function(tr){ if (tr.rowIndex <self.tbl.rows.length-1) { self.swapTr(tr,self.tbl.rows[tr.rowIndex+1]); self.getChkBox(tr).checked=true; } } var arr=$A(self.tbl.rows) if (arr.length>0 && self.getChkBox(arr[arr.length-1]).checked){ for(var i=arr.length-1;i>=0;i--){ if (self.getChkBox(arr[i]).checked){ arr.pop() }else{ break } } } arr.reverse().each(function(tr){if (self.getChkBox(tr).checked) downOne(tr)}); }, highlight:function(){ //设置tr的背景色 var self=this; var evt=arguments[0] || window.event var chkbox=evt.srcElement || evt.target var tr=chkbox.parentNode.parentNode chkbox.checked?self.setBgColor(tr):self.restoreBgColor(tr) }, swapTr:function(tr1,tr2){ //交换tr1和tr2的位置 var target=(tr1.rowIndex <tr2.rowIndex)?tr2.nextSibling:tr2; var tBody=tr1.parentNode tBody.replaceChild(tr2,tr1); tBody.insertBefore(tr1,target); }, getChkBox:function(tr){ //从tr得到 checkbox对象 return tr.cells[0].firstChild }, restoreBgColor:function(tr){ tr.style.backgroundColor="#ffffff" }, setBgColor:function(tr){ tr.style.backgroundColor="#c0c0c0" } } function f(a,b){ var sumRow=function(row){return Number(row.cells[1].innerHTML)+Number(row.cells[2].innerHTML)}; return sumRow(a)>sumRow(b)?1:-1; } </script> </head> <body> <button onClick="javascript:mytable.add()">添加一行 </button> <button onClick="javascript:mytable.del()">删除选定行 </button> <button onClick="javascript:mytable.up()">上移选定行 </button> <button onClick="javascript:mytable.down()">下移选定行 </button> <table width=100%> <tr> <td valign="top"> <table border id="tbl" width="80%"> </table> </td> </tr> </table> </body> </html> 表格操作:http://dl.dropbox.com/u/2555620/jquery/table.htmlhttp://dl.dropbox.com/u/2555620/jquery/table%20moveRow.html js脚本写在<head></head>之间阿 我都看晕了 你的要求很简单 可以参靠以下这个:<html> <head> <title> </title> <script type="text/javascript"> function $(elem) { return document.getElementById(elem); } var num=1; function addd() { var tab=$("tb"); var row=tab.insertRow(-1); row.id="row"+num; var cell1=row.insertCell(-1); var cell2=row.insertCell(-1); var cell3=row.insertCell(-1); var cell4=row.insertCell(-1); var cell5=row.insertCell(-1); var cell6=row.insertCell(-1); cell1.innerHTML="<select name='xxx'></select>"; cell2.innerHTML="<input type='radio' value='sex' name='sex'>";cell3.innerHTML=" <input type='text'>"; cell4.innerHTML=" <input type='text'>"; cell5.innerHTML=" <input type='text'>"; cell6.innerHTML=" <input type='button' onclick='del("+num+")' value='delete' >"; num++; }function del(num) { var row=$("row"+num); var tab=$("tb"); tab.deleteRow(row.rowIndex); } </script> </head> <body> <table id="tb" border=1> </table> <input type="button" value="add" id="ok" onclick="addd();"/> </body> </html> JAVA读取ORCL数据库的日期问题 Javascript接受服务器端传来值的问题,急。。。。。。 关于JS的THIS 求页面载入时的loading效果 怎么样把一个显示中的html页面保存为图片(bmp,jpg,gif,png等都可以) 如何用JS设置COOKIE集合? 请高手帮忙~~!(如何用js遍历XML串取想要的数据!) 现在CSDN的API地址是多少? 请教高手javascript控制表单收放功能 图层与下拉框的问题! js调用方法取值的问题 急T T.. 关于全局变量的字符串在另外一个类的某一位的赋值
看看这个 很简单的
<table>
<tr>
<td colspan="2" align="center"><input type="text" name="BagName" id="BagName" style="width:250px" onkeydown="fun_tab()" /></td>
<td align="center"><input name="BagNum" type="text" id="BagNum" style="width:50px" onkeydown='enter2Addtr();' /></td>
<td align="center"><input type="button" name="del" id="del" value="删除" onclick="deltr($(this))" />
<input type="button" name="add" id="add" value="增加" onclick="addtr($(this))" /></td>
</tr>
<table>
<script language="javascript" src="jquery-1.3.2.js"></script>
<script language="javascript">
function addtr(e){
var mytable=e.parent().parent().parent();
e.parent().parent().clone().insertAfter(e.parent().parent());
mytable.find("tr:last-child").find("input:text").val("");
e.css("visibility","hidden");
mytable.find("tr:last-child").find("div").remove();
mytable.find("tr:last-child").find("input:first").focus();
try
{
myinput();
myajax();
}
catch(e){}
}
function deltr(e){
var mytable=e.parent().parent().parent();
if(mytable.find("tr").size()>=2)
{
e.parent().parent().remove();
mytable.find("tr:last-child > td:last-child > #add").css("visibility","visible");
}
else
alert("必须保留至少一条记录!");
}function enter2Addtr() {
if (event.keyCode == 13) {
addtr($("#add"));
}
}
</script>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<style type="text/css">*{font-size:14px}button{margin:3px} </style>
<script type="text/javascript"> var mytable=null; window.onload=function(){
mytable=new CTable("tbl",10);
} Array.prototype.each=function(f){for(var i=0;i <this.length;i++) f(this[i],i,this)} function $A(arrayLike){
for(var i=0,ret=[];i <arrayLike.length;i++) ret.push(arrayLike[i]);
return ret
} Function.prototype.bind = function() {
var __method = this, args = $A(arguments), object = args.shift();
return function() {
return __method.apply(object, args.concat($A(arguments)));
}
}
function CTable(id,rows){
this.tbl=typeof(id)=="string"?document.getElementById(id):id;
if (rows && /^\d+$/.test(rows)) this.addrows(rows)
} CTable.prototype={
addrows:function(n){ //随机添加n个tr
new Array(n).each(this.add.bind(this))
},
add:function(){ //添加1个tr
var self=this;
var tr = self.tbl.insertRow(-1),td1= tr.insertCell(-1),td2= tr.insertCell(-1);
var chkbox=document.createElement("INPUT")
chkbox.type="checkbox"
chkbox.onclick=self.highlight.bind(self)
td1.appendChild(chkbox)
td1.setAttribute("width","35")
td2.innerHTML="A: <INPUT NAME=A /> <br />B: <INPUT NAME=B />";
},
del:function(){ //删除所选tr
var self=this
$A(self.tbl.rows).each(function(tr){if (self.getChkBox(tr).checked) tr.parentNode.removeChild(tr)})
},
up:function(){ //上移所选tr
var self=this
var upOne=function(tr){ //上移1个tr
if (tr.rowIndex>0){
self.swapTr(tr,self.tbl.rows[tr.rowIndex-1])
self.getChkBox(tr).checked=true
}
}
var arr=$A(self.tbl.rows).reverse()
if (arr.length>0 && self.getChkBox(arr[arr.length-1]).checked){
for(var i=arr.length-1;i>=0;i--){
if (self.getChkBox(arr[i]).checked){
arr.pop()
}else{
break
}
}
}
arr.reverse().each(function(tr){if (self.getChkBox(tr).checked) upOne(tr)});
},
down:function(){
var self=this
var downOne=function(tr){
if (tr.rowIndex <self.tbl.rows.length-1) {
self.swapTr(tr,self.tbl.rows[tr.rowIndex+1]);
self.getChkBox(tr).checked=true;
}
}
var arr=$A(self.tbl.rows) if (arr.length>0 && self.getChkBox(arr[arr.length-1]).checked){
for(var i=arr.length-1;i>=0;i--){
if (self.getChkBox(arr[i]).checked){
arr.pop()
}else{
break
}
}
}
arr.reverse().each(function(tr){if (self.getChkBox(tr).checked) downOne(tr)});
},
highlight:function(){ //设置tr的背景色
var self=this;
var evt=arguments[0] || window.event
var chkbox=evt.srcElement || evt.target
var tr=chkbox.parentNode.parentNode
chkbox.checked?self.setBgColor(tr):self.restoreBgColor(tr)
},
swapTr:function(tr1,tr2){ //交换tr1和tr2的位置
var target=(tr1.rowIndex <tr2.rowIndex)?tr2.nextSibling:tr2;
var tBody=tr1.parentNode
tBody.replaceChild(tr2,tr1);
tBody.insertBefore(tr1,target);
},
getChkBox:function(tr){ //从tr得到 checkbox对象
return tr.cells[0].firstChild
},
restoreBgColor:function(tr){
tr.style.backgroundColor="#ffffff"
},
setBgColor:function(tr){
tr.style.backgroundColor="#c0c0c0"
}
} function f(a,b){
var sumRow=function(row){return Number(row.cells[1].innerHTML)+Number(row.cells[2].innerHTML)};
return sumRow(a)>sumRow(b)?1:-1;
} </script> </head>
<body> <button onClick="javascript:mytable.add()">添加一行 </button>
<button onClick="javascript:mytable.del()">删除选定行 </button>
<button onClick="javascript:mytable.up()">上移选定行 </button>
<button onClick="javascript:mytable.down()">下移选定行 </button>
<table width=100%>
<tr>
<td valign="top"> <table border id="tbl" width="80%"> </table> </td>
</tr>
</table>
</body>
</html>
http://dl.dropbox.com/u/2555620/jquery/table%20moveRow.html
<head>
<title> </title>
<script type="text/javascript">
function $(elem)
{
return document.getElementById(elem);
}
var num=1;
function addd()
{
var tab=$("tb");
var row=tab.insertRow(-1);
row.id="row"+num;
var cell1=row.insertCell(-1);
var cell2=row.insertCell(-1);
var cell3=row.insertCell(-1);
var cell4=row.insertCell(-1);
var cell5=row.insertCell(-1);
var cell6=row.insertCell(-1);
cell1.innerHTML="<select name='xxx'></select>";
cell2.innerHTML="<input type='radio' value='sex' name='sex'>";
cell3.innerHTML=" <input type='text'>";
cell4.innerHTML=" <input type='text'>";
cell5.innerHTML=" <input type='text'>";
cell6.innerHTML=" <input type='button' onclick='del("+num+")' value='delete' >";
num++; }
function del(num)
{
var row=$("row"+num);
var tab=$("tb");
tab.deleteRow(row.rowIndex);
}
</script>
</head>
<body>
<table id="tb" border=1>
</table>
<input type="button" value="add" id="ok" onclick="addd();"/>
</body>
</html>