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. Android开发:《Gradle Recipes for Android》阅读笔记1.7——仓库配置

    repositories块告诉gradle哪里去寻找依赖,默认的android studio使用jcenter或者mavenCentral.jcenter仓库位于https://jcenter.bin ...

  2. B. No Time for Dragons(贪心)

    B. No Time for Dragons time limit per test 2.0 s memory limit per test 256 MB input standard input o ...

  3. ECMAScript6箭头函数ArrowFunction"=>"

    一.说明 ECMAScript6可以用箭头"=>"定义函数.x => x * x或(x) => {return x * x;}与匿名函数function(x){r ...

  4. 解决Raize日历控件显示的问题

    解决Raize日历控件显示的问题 近自己的程序被测试人员发现一个小问题,就是程序中的日历选择框,显示中的“星期一.星期二....”都显示成了“星.....”,我自己看了代码,原来是raize的控件问题 ...

  5. php中定时计划任务的实现原理

    根据php手册简单介绍一些相关的知识: 1.连接处理: 在 PHP 内部,系统维护着连接状态,其状态有三种可能的情况: 0 - NORMAL(正常) 1 - ABORTED(异常退出) 2 - TIM ...

  6. Jetty VS Tomcat

    Tomcat 经过长时间的发展,它已经广泛的被市场接受和认可,尤其在企业级应用方面,Tomcat 仍然是第一选择.但是随着 Jetty 的发展,Jetty 的市场份 额也在不断提高. 1.架构 Jet ...

  7. 000-mysql小技巧

    1.使用Navicat 链接5.7版本出现 mysql 5.7.9 [Err] 1055报错解决,[Err] 1055 – Expression #1 of ORDER BY clause is no ...

  8. NPOI导出excel表格应用

    最近接到一个需求,在原有系统上做二次开发 ,要求导出DataGridView数据到Excel表格中.要求如下: 兼容所有excel版本: 导出后excel各列的样式,字段类型不变. 成型如下:

  9. 剑指offer 面试5题

    面试5题: 题目:请实现一个函数,将一个字符串中的空格替换成“%20”.例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy. 方法一: # -*- co ...

  10. Network Basic Knowledge

    @1: 应用层的常用协议以及对应的端口号: DNS 53/tcp/udp SMTP 25/tcp POP3 110/tcp HTTP 80/tcp HTTPS 443/udp TELNET 23/tc ...