添加删除表格(js完成)【自己实际项目】
1 // 通过dom对象完成 注释掉了 2 3 /** 4 function insertRows(){ 5 6 var tempRow=0; 7 var tbl=document.getElementById("dictTbl"); 8 tempRow=tbl.rows.length; 9 var Rows=tbl.rows;//类似数组的Rows 10 var newRow=tbl.insertRow(tbl.rows.length);//插入新的一行 11 var Cells=newRow.cells;//类似数组的Cells 12 for (i=0;i<3;i++)//每行的3列数据 13 { 14 var newCell=Rows[newRow.rowIndex].insertCell(Cells.length); 15 newCell.align="center"; 16 switch (i) 17 { 18 case 0 : newCell.innerHTML=""+tempRow+"";break; 19 case 1 : newCell.innerHTML="<input name=\"itemname\" type=\"text\" id=\""+tempRow+"\" size=\"45\" maxlength=25>";break; 20 case 2 : newCell.innerHTML="<a href='javascript:delTableRow(\""+tempRow+"\")'><img src=${pageContext.request.contextPath }/images/delete.gif width=15 height=14 border=0 style=CURSOR:hand></a>";break; 21 22 } 23 //alert(newCell.innerHTML); 24 } 25 } 26 function delTableRow(rowNum){ 27 28 var tbl=document.getElementById("dictTbl"); 29 30 if (tbl.rows.length >rowNum){ 31 32 tbl.deleteRow(rowNum); 33 34 for (i=rowNum;i<tbl.rows.length;i++) 35 { 36 tbl.rows[i].cells[0].innerHTML=i; 37 tbl.rows[i].cells[2].innerHTML="<a href='javascript:delTableRow(\""+i+"\")'><img src=${pageContext.request.contextPath }/images/delete.gif width=15 height=14 border=0 style=CURSOR:hand></a>"; 38 tbl.rows[i].cells[1].childNodes[0].id=i; 39 } 40 } 41 } 42 */ 43 44 //jquery方式 45 function insertRows(){ 46 //获取表格对象 47 var tb1 = $("#dictTbl"); // 找table的ID 48 var tempRow = $("#dictTbl tr").size(); //获取表格的行数 49 var $tdNum = $("<td align='center'></td>"); //创建第一个td 50 $tdNum.html(tempRow); //html把序号放到了第一个td里面 51 52 var $tdName = $("<td align='center'></td>"); //再创建一个td 53 $tdName.html("<input name=\"itemname\" type=\"text\" id=\""+tempRow+"\" size=\"45\" maxlength=25>");//放文本框 54 55 var $tdDel = $("<td align='center'></td>"); //第三个td 56 $tdDel.html("<a href='javascript:delTableRow(\""+tempRow+"\")'> 57 <img src=${pageContext.request.contextPath }/images/delete.gif width=15 height=14 border=0 style=CURSOR:hand></a>"); //里面添加了一个超链接 超链接里面有个删除的方法 58 59 60 // 创建tr,将3个td放置到tr中 61 var $tr = $("<tr></tr>"); 62 $tr.append($tdNum); 63 $tr.append($tdName); 64 $tr.append($tdDel); 65 //在表格的最后追加新增的tr 66 tb1.append($tr); 67 } 68 69 function delTableRow(rowNum){ 70 //改变行号和删除的行号 71 var tb1 = $("#dictTbl"); //找table的ID 72 var tempRow = $("#dictTbl tr").size();//获取表格的行数 73 if (tempRow >rowNum){ 74 //获取删除行的id指定的对象,例如:<input name=\"itemname\" type=\"text\" id=\""+tempRow+"\" size=\"45\" maxlength=25> 75 $("#"+rowNum).parent().parent().remove(); //找要删除行的id 的父td(即第二个td)的父tr 然后自杀jquery可以自杀 76 //加1表示寻找下一个id,目的是将后面tr的格式向上移动 77 for (i=(parseInt(rowNum)+1);i<tempRow;i++){ 78 //将i-1的值赋值给编号 【i现在是删除行的下一行 假设删除4 i现在是5 i-1=4】 79 //prev() 获得匹配元素集合中每个元素紧邻的前一个同胞元素,通过选择器进行筛选是可选的。 80 //id在第二个td即input中,所以用prev()得到第一个td(含有编号的td) 81 $("#"+i).parent().prev().html(i-1); //修改第一个td序号:假设删除4现在把后面的标号5变为了4 82 83 //修改第三个td: 将i-1(即4)的值赋值给超链接的删除 84 $("#"+i).parent().next().html("<a href='javascript:delTableRow(\""+(i-1)+"\")'><img src=${pageContext.request.contextPath }/images/delete.gif width=15 height=14 border=0 style=CURSOR:hand></a>");// 85 //修改第二个td: 将i-1(即4)的值赋值给文本框的id,用于删除 attr() 方法设置或返回被选元素的属性值。 86 $("#"+i).attr("id",(i-1));//将id设置成i-1 87 } 88 } 89 }