html代码

<h1>动态添加和删除标签</h1>
<div id="addTagTest">
<table>
<thead><tr><th>姓名</th><th>年薪</th><th>操作</th></tr></thead>
<tbody id="info"> </tbody>
</table>
姓名:<input type="text" name="userName" id="userName" value="" /><br>
年薪<input type="text" name="money" id="money" value="" /><br>
<button id="add" onclick="addTag()">添加记录</button>
</div>

js代码:

第一种:动态添加和删除

function addTag(){
//获取值
var userName=document.getElementById("userName").value;
var money=document.getElementById("money").value;
//创建元素
var tr=document.createElement("tr");
var td1=document.createElement("td");
var td2=document.createElement("td");
var td3=document.createElement("td");
var a=document.createElement("a");
//为元素的属性赋值
td1.innerHTML=userName;
td1.setAttribute("align","center");
td2.innerHTML=money;
td2.setAttribute("align","center");
td3.setAttribute("align","center");
a.innerHTML="删除";
a.setAttribute("onclick","delRow(this)");
//添加到页面中
var info = document.getElementById("info");
info.appendChild(tr);
tr.appendChild(td1);
tr.appendChild(td2);
tr.appendChild(td3);
td3.appendChild(a);
}
//删除方法
function delRow(o){
//获取父元素
var info = document.getElementById("info");
//根据节点获取当前行
var rowIndex = o.parentNode.parentNode.rowIndex;
//删除一行
info.deleteRow(rowIndex-1);
}

第二种:动态添加和删除(js集合)

var list=[];//声明一个集合
function addTag(){
var userName=document.getElementById("userName").value;
var money=document.getElementById("money").value;
var obj=new Object();
obj.name=userName;
obj.money=money;
list.push(obj); //对象放入集合
var info = document.getElementById("info");
var inner="";
//动态添加元素
for(i=0;i<list.length;i++){
inner+="<tr>";
inner+='<td align=\"center\">'+list[i].name+'</td><td align=\"center\">'+list[i].money+
'</td><td align=\"center\"><a name=\"'+i+'\" onclick=\"functiondel(this)\">'+"删除"+'</a></td>';
inner+="</tr>";
}
info.innerHTML=inner;
}
//删除方法
function functiondel(o){
var stack=[];//声明一个临时栈
var index=o.name;
for(k=list.length-1;k>=0;k--){
if(k>index){
stack.push(list[k]);
list.pop();
}
else{
list.pop();
break;
}
}
for(m=stack.length-1;m>=0;m--){
list.push(stack[m]);
}
var info = document.getElementById("info");
var inner="";
for(i=0;i<list.length;i++){
inner+="<tr>";
inner+='<td align=\"center\">'+list[i].name+'</td><td align=\"center\">'+list[i].money+
'</td><td align=\"center\"><a name=\"'+i+'\" onclick=\"functiondel(this)\">'+"删除"+'</a></td>';
inner+="</tr>";
}
info.innerHTML=inner;
}

js动态添加和删除标签的更多相关文章

  1. 原生JS动态添加和删除类

    原生JS动态添加和删除类 由于需要, 给按钮组监听点击事件(要求用事件委托),当有一个按钮被点击时,相应的给该按钮添加一个类(激活类),其他没有点击的按钮就要移出该类 添加和和删除类有三种方法 首先等 ...

  2. jquery-ui-bootstrap动态添加和删除标签页封装【效果更炫】

    1.效果图 2.导入js和css <link rel="stylesheet" href="css/bootstrap/css/bootstrap.min.css& ...

  3. js动态添加和删除table的行例子

    <table id="table_report" class="table table-striped table-bordered table-hover&quo ...

  4. 使用js页面添加或删除标签

    // 添加var container = document.getElementById('divAudio');container.appendChild(audio); // 删除var cont ...

  5. js进阶 9-11 select选项框如何动态添加和删除元素

    js进阶 9-11 select选项框如何动态添加和删除元素 一.总结 一句话总结: 二.js进阶 9-11 select选项框如何动态添加和删除元素 1.案例说明 2.相关知识 Select 下拉列 ...

  6. JS实现动态添加和删除div

    实现方式一:只在最后一个数据中动态添加或者删除 | 背景需要做一个页面,页面可以输入参数,点击确认按钮可以发请求给某接口.但是接口的某个字段是数组类型,所以在页面上需要实现添加或者删除元素的功能. | ...

  7. form表单 无法提交js动态添加的表单元素问题。。

    第一种情况, 这种情况js动态添加的表单元素是不能提交到服务器端的 <table> <form method="post" action=" url   ...

  8. jquery 动态添加和删除 ul li列表

    今天需要实现一个jquery动态添加和删除  ul li列表中的li行,自己简单的实现乐一个,分享一下 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML ...

  9. js 动态添加表单 table tr

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

随机推荐

  1. jmeter安装启动报错:Not able to find Java executable or version. Please check your Java installation

    1.xp安装jmeter后启动,出现下面错误,找了很多方法试了,都没有用: 2.最后找到一个方法解决了[感谢无名大神],在环境变量PATH中添加:%SystemRoot%/system32;%Syst ...

  2. Android无线测试之—UiAutomator UiDevice API介绍一

    UiDevice 类介绍 1.UiDevice 代表设备状态 2.UiDevice 为单例模式 获取UiDevice实例的方式: 1) UiDevice.getInstance() 2) getUiD ...

  3. MySQL中常用字符串函数

    1.字符串长度函数CHAR_LENGTH(str),LENGTH(str)  CHAR_LENGTH()返回值为字符串str的长度,长度的单位为字符.一个多字节字符算作一个单字符.对于一个包含五个二字 ...

  4. JS实现全选,全不选

    <script type="text/javascript"> function selectItem() { document.getElementById(&quo ...

  5. 前端基础 DOM & BOM

    推荐阅读:http://www.cnblogs.com/yuanchenqi/articles/6893904.html#_label3 BOM对象 window 对象 所有浏览器都支持 window ...

  6. InnoDB的三个关键特性

    一.插入缓冲(insert buffer) 对于非聚集索引的插入和更新,不是每一次直接插入索引页中,而是首先判断插入的非聚集索引页是否在缓冲池中,如果在,则直接插入,否则, 先放入一个插入缓冲区中.好 ...

  7. pycharm 用鼠标滚动调整字体大小

  8. OC、C#与JAVA语法特点一些异同(差集&交集)

    C#对JAVA: 1.扩展方法 2.部分类 3.动态对象 4.匿名返回类型 5.表达式树 6.Linq 7.没有函数指针,委托,事件的直接提供方式 8.JAVA接口不规定以I开头,这个很烂的思想! J ...

  9. 打开一个vue项目

    1.cmd打开命令行工具 2.cd定位到目录 3.(sudo) cnpm install安装((sudo)npm install -g cnpm --registry=http://registry. ...

  10. python之路:进击的小白

    1.hello world print("hello world") 2.变量定义的规则 变量名只能是 字母.数字或下划线的任意组合 变量名的第一个字符不能是数字 以下关键字不能声 ...