//  通过dom对象完成   注释掉了    

 /**
function insertRows(){ var tempRow=0;
var tbl=document.getElementById("dictTbl");
tempRow=tbl.rows.length;
var Rows=tbl.rows;//类似数组的Rows
var newRow=tbl.insertRow(tbl.rows.length);//插入新的一行
var Cells=newRow.cells;//类似数组的Cells
for (i=0;i<3;i++)//每行的3列数据
{
var newCell=Rows[newRow.rowIndex].insertCell(Cells.length);
newCell.align="center";
switch (i)
{
case 0 : newCell.innerHTML=""+tempRow+"";break;
case 1 : newCell.innerHTML="<input name=\"itemname\" type=\"text\" id=\""+tempRow+"\" size=\"45\" maxlength=25>";break;
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; }
//alert(newCell.innerHTML);
}
}
function delTableRow(rowNum){ var tbl=document.getElementById("dictTbl"); if (tbl.rows.length >rowNum){ tbl.deleteRow(rowNum); for (i=rowNum;i<tbl.rows.length;i++)
{
tbl.rows[i].cells[0].innerHTML=i;
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>";
tbl.rows[i].cells[1].childNodes[0].id=i;
}
}
}
*/ //jquery方式
function insertRows(){
//获取表格对象
var tb1 = $("#dictTbl"); // 找table的ID
var tempRow = $("#dictTbl tr").size(); //获取表格的行数
var $tdNum = $("<td align='center'></td>"); //创建第一个td
$tdNum.html(tempRow); //html把序号放到了第一个td里面 var $tdName = $("<td align='center'></td>"); //再创建一个td
$tdName.html("<input name=\"itemname\" type=\"text\" id=\""+tempRow+"\" size=\"45\" maxlength=25>");//放文本框 var $tdDel = $("<td align='center'></td>"); //第三个td
$tdDel.html("<a href='javascript:delTableRow(\""+tempRow+"\")'>
<img src=${pageContext.request.contextPath }/images/delete.gif width=15 height=14 border=0 style=CURSOR:hand></a>"); //里面添加了一个超链接 超链接里面有个删除的方法 // 创建tr,将3个td放置到tr中
var $tr = $("<tr></tr>");
$tr.append($tdNum);
$tr.append($tdName);
$tr.append($tdDel);
//在表格的最后追加新增的tr
tb1.append($tr);
} function delTableRow(rowNum){
//改变行号和删除的行号
var tb1 = $("#dictTbl"); //找table的ID
var tempRow = $("#dictTbl tr").size();//获取表格的行数
if (tempRow >rowNum){
//获取删除行的id指定的对象,例如:<input name=\"itemname\" type=\"text\" id=\""+tempRow+"\" size=\"45\" maxlength=25>
$("#"+rowNum).parent().parent().remove(); //找要删除行的id 的父td(即第二个td)的父tr 然后自杀jquery可以自杀
//加1表示寻找下一个id,目的是将后面tr的格式向上移动
for (i=(parseInt(rowNum)+1);i<tempRow;i++){
//将i-1的值赋值给编号 【i现在是删除行的下一行 假设删除4 i现在是5 i-1=4】
//prev() 获得匹配元素集合中每个元素紧邻的前一个同胞元素,通过选择器进行筛选是可选的。
//id在第二个td即input中,所以用prev()得到第一个td(含有编号的td)
$("#"+i).parent().prev().html(i-1); //修改第一个td序号:假设删除4现在把后面的标号5变为了4 //修改第三个td: 将i-1(即4)的值赋值给超链接的删除
$("#"+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>");//
//修改第二个td: 将i-1(即4)的值赋值给文本框的id,用于删除 attr() 方法设置或返回被选元素的属性值。
$("#"+i).attr("id",(i-1));//将id设置成i-1
}
}
}

添加删除表格(js完成)【自己实际项目】的更多相关文章

  1. DHTMLX 前端框架 建立你的一个应用程序 教程(十一)--添加/删除表格中的记录

    添加/删除表格中的记录 我们的最终功能是在表格中添加删除 我们通过单机工具栏上的按钮来实现添加删除 当我们单击添加按钮的时候, 表单中 第一行默认填写New contact 光标自动聚焦 当用户点击删 ...

  2. 数据字典的设计--3.首页添加删除表格(JS实现)

    页面效果: JS代码: 1.添加表格 function insertRows(){ //获取表格对象 var tb1 = $("#dictTbl"); var tempRow = ...

  3. 点滴积累【JS】---JS小功能(操作Table--动态添加删除表格及数据)

    效果: 代码: <head runat="server"> <title></title> <style type="text/ ...

  4. 动态插入、添加删除表格行的JS代码

    <html> <head> <title>Table对象的方法</title> <script language="JavaScript ...

  5. 添加删除表格append或 createElement

    方法一: js代码:增加一行五列的表格 function AddList(){ $len= document.getElementsByName('goods_name[]').length; obj ...

  6. ASP.NET+ashx+jQuery动态添加删除表格

    aspx: <script src="../script/jquery-1.4.4.min.js" type="text/javascript" lang ...

  7. Jquery动态添加/删除表格行和列

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  8. js 表格操作----添加删除

    js 表格操作----添加删除 书名:<input type="text" id="name"> 价格:<input type="t ...

  9. 表格的一些原生js操作(隔行变色,高亮显示,添加删除,搜索)

    看着网上的视频教程,虽说还是有点简单,但还是不免想记录下.这些操作包括(隔行变色,高亮显示,添加删除,搜索功能),而这儿就是涉及table的原有属性“tBodies” “rows” “cells”等几 ...

随机推荐

  1. python 使用getopt 获取配置参数

    在工程中特别是稍微大一点的项目基本上都会用到配置,就会涉及到配置文件的读取,配置参数的读取. 常用的解析配置文件的是configParser,解析命令行参数的则为getopt. getopt的参数可以 ...

  2. 使用 Python 连接 Caché 数据库

    有不少医院的 HIS 系统用的是 Caché 数据库,比如北京协和医院.四川大学华西医院等.用过 Caché 开发的都知道,Caché 数据库的开发维护同我们常见的关系型数据库有很大差别,如 SQL ...

  3. 理解多线程管理类 CWorkQueue

    有些人会觉得多线程无非是,有多少任务就启动多少线程,CreadThread,执行完了自己结束就释放资源了,其实不然.多线程是需要管理的,线程的启动.执行.等待和结束都需要管理,线程间如何通信,如何共享 ...

  4. [Vue]组件——.sync 修饰符实现对prop 进行“双向绑定”

    一.同时设置1个 prop 1.以 update:my-prop-name 的模式触发事件,如对于title属性: this.$emit('update:title', newTitle) 2.然后父 ...

  5. chengdongyue的笔记

    ---------------------------------------- Linux 基础 --------------------------------1.Linux的诞生 1.unix两 ...

  6. Kali之aircrack-ng

    本机装好设备及驱动 电脑本机装好Realtek RTL8187 Wireless驱动连接好USB无线驱动 把设备转接给虚拟机 win+R,启动VMware USB Arbitration Servic ...

  7. 2016ACM/ICPC亚洲区沈阳站H - Guessing the Dice Roll HDU - 5955 ac自动机+概率dp+高斯消元

    http://acm.hdu.edu.cn/showproblem.php?pid=5955 题意:给你长度为l的n组数,每个数1-6,每次扔色子,问你每个串第一次被匹配的概率是多少 题解:先建成ac ...

  8. Tracing on Linux

    The Linux tracing APIs are a relatively new addition to the kernel and one of the most powerful new ...

  9. Qt5全局热键-QxtGlobalShortcut

    最近做一个项目需要注册全局热键,在网上搜索发现有个第三方库 libqxt 中给出一个比较好的跨平台的解决方案,就是 QxtGlobalShortcut. 但是编译过程中发现这个库用到的QAbstrac ...

  10. caffe:自己搭建网络来训练

    1.准备样本 要训练自己的样本,首先需要把样本准备好,需要准备的是训练集和测试集,caffe支持直接使用图片,当然把样本转换为leveldb或lmdb格式的话训练起来会更快一点.这里我先偷个懒,直接使 ...