基于网上代码修改实现动态添加表数据行

<!DOCTYPE html>
<html lang="cn">
<html>
<head>
<meta charset="UTF-8">
<title></title>
<style type="text/css">
body,html{
padding: 0;
margin: 0;
font-size: 14px;
color: #000000;
}
table{
border-collapse: collapse;
width: 100%;
table-layout: fixed;
}
thead{
background: #3d444c;
color: #ffffff;
}
td,th{
border: 1px solid #e1e1e1;
padding: 0;
height: 30px;
line-height: 30px;
text-align: center;
}
.hide{
display:none;
}
.dialog-tip{
width:300px;
height:200px;
border:1px solid #aaaaaa;
}
</style>
</head>
<body>
<table id="jsTrolley">
<thead><tr><th>名称</th><th>价格</th><th>操作</th></tr></thead>
<tbody>
<tr><td>产品1</td><td>10.00</td><td><a href="javascript:void(0);">删除</a></td></tr>
<tr><td>产品2</td><td>30.20</td><td><a href="javascript:void(0);">删除</a></td></tr>
<tr><td>产品3</td><td>20.50</td><td><a href="javascript:void(0);">删除</a></td></tr>
</tbody>
<tfoot><tr><th>总计</th><td colspan="2">60.70(3件商品)</td></tr></tfoot>
</table>
<button onclick="dialog()">添加</button> <div id="dialogId" class="hide" style=" width:300px;height:200px;border:1px solid #3d444c;margin-left:40%">
<input type="text" name="name" class="one"/>
<input type="text" name="price" class="two"/>
<button onclick="save()">确定</button>
<button onclick="cancel()">取消</button>
</div> <script type="text/javascript">
var tip = document.getElementById("dialogId");
var dialog = function(){
tip.className = "";
};
// var sum = 60.70;
var items = {}; var save = function(){
var itemObj = {};
itemObj.name = document.getElementsByClassName("one")[0].value;
itemObj.price = parseInt(document.getElementsByClassName("two")[0].value);
items = itemObj;
add(items);
items = {};
tip.className = "hide";
} var cancel = function(){
tip.className = "hide";
} //闭包实现局部变量保存在内存中
function a(d){
var sum = 60.70;
if(!d.length){
function c(d){
if(d && !d.length){
sum = sum + d.price;
}
else return sum;
return sum; };
}
return c;
};
var sumary = a(items);
function add(items) {
var add = document.createElement("tr");
var src = document.getElementsByTagName("tbody");
add.innerHTML = "<td>"+items.name+"</td><td>"+items.price+"</td><td><a href='javascript:void(0);'>删除</a></td>";
src[0].appendChild(add);
var tableObj = document.getElementById("jsTrolley");
var num = tableObj.rows.length -2;
var len = tableObj.rows.length;
// sum+=items.price;
// tableObj.rows[len-1].cells[1].innerText =sum.toFixed(2)+"("+num+"件商品)";
tableObj.rows[len-1].cells[1].innerText =sumary(items).toFixed(2)+"("+num+"件商品)";
bind();
} function bind() {
var arr = document.getElementsByTagName("a");
var src = document.getElementsByTagName("tbody");
s = src[0];
var len = arr.length;
for(var i =0 ;i<len ;i++)
{
arr[i].setAttribute("onclick","foo(s,this)");
}
} function foo(x,y){
var sum = sumary();
var tar = y.parentNode.parentNode;
x.removeChild(tar);
var v = y.parentNode.previousSibling.innerHTML;
sum -=v;
var tableObj = document.getElementById("jsTrolley");
var num = tableObj.rows.length -2;
tableObj.rows[tableObj.rows.length-1].cells[1].innerText = sum.toFixed(2)+"("+num+"件商品)"; } bind();
function show(){
var tableRowInfo ="";
tableObj = document.getElementById("jsTrolley");
for(var i =0 ;i<tableObj.rows.length ; i++){ for(var j=0 ;j<tableObj.rows[i].cells.length ; j++){
tableRowInfo += tableObj.rows[i].cells[j].innerText + " ";
}
console.log(tableRowInfo); // 打印每行信息
tableRowInfo ="";
}
}
show(); </script>
</body>
</html>

table动态增加删除的更多相关文章

  1. JS动态增加删除UL节点LI

    JS如何动态增加删除UL节点LI及相关内容. <ul id="ul"> <li id=1>11111111111111111<a href=" ...

  2. Repeater 动态增加删除一行

    文章参考:文章参考http://www.cnblogs.com/dataadapter/archive/2012/06/25/2562885.html 效果: 前台代码: <%@ Page La ...

  3. Hadoop 2.6.3动态增加/删除DataNode节点

    假设集群操作系统均为:CentOS 6.7 x64 Hadoop版本为:2.6.3 一.动态增加DataNode 1.准备新的DataNode节点机器,配置SSH互信,可以直接复制已有DataNode ...

  4. table动态添加删除一行和改变标题

    <style type="text/css"> body{ font-size:13px; line-height:25px; } table{ border-top: ...

  5. wpf动态增加删除控件

    我在xaml中定义了一个名字为morepictureWrapPan为WrapPanel,然后将控件添加在此WrapPanel中.由于要实现控件的删除功能,所以增加的textbox和button的名字都 ...

  6. jquery validate 动态增加删除验证规则(转载)

    页面加载完成初始化form validate $("#user_regForm").validate({ errorPlacement: function(error, eleme ...

  7. jquery validate 动态增加删除验证规则

    增加规则示例: $('.class').rules('add',{ required: true, messages:{ required: '这是必填,请填写', } }); 删除规则示例: $(' ...

  8. JQuery动态增加删除元素

    <form action="" method="post" enctype="multipart/form-data"> < ...

  9. MVC中用jQuery加BootStrap实现动态增加删除文本输入框!

    http://www.freejs.net/article_biaodan_278.html 这是在网上找到方法,我修改了一下实合我的项目,发博只为收藏记录并加深记忆. 修改后效果如下 @model ...

随机推荐

  1. erlang中http请求

    1..app文件中 {application,backend,[  {description,"ebank backend"},  {vsn,1.0},  {modules,[]} ...

  2. 最近工作再弄基于bootstrap的定制sass

    封装各种组件如 button table 当然..我只才做完两个. 比如table 抽出很多类以后可以配置的值 还有button 目录结构大致是 scss主要css文件 base和components ...

  3. Python之字符串方法

    def capitalize(self): # 第一个字符变大写 def center(self, width, fillchar=None): # 内容居中,两端可指定内容填充 def count( ...

  4. maven profile实现多环境配置

    每次项目部署上线都需要手动去修改配置文件(比如数据库配置,或者一个自定义的配置)然后才能打包,很麻烦,网上找到 maven profile可以完成这个工作,记录如下: 环境:eclipse + spr ...

  5. Java randomString

    public static String randomString(int strLength) { Random rnd = ThreadLocalRandom.current(); StringB ...

  6. sprindmvc

    Spring Web MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将web层进行职责解耦,基于请求驱动指的就是使用请求-响应模 ...

  7. JS中的一元操作符

    表达式 一元操作符 优先级 结合性 运算顺序 表达式是什么? 就是JS 中的一个短语,解释器遇到这个短语以后会把对它进行计算,得到一个结果参与运算,我们把这种要参与到运算中的各种各样的短语称为表达式. ...

  8. git bash + gitee

    使用Git Bash从Gitee上下载代码到本地以及上传代码到码云Git: https://www.cnblogs.com/babysbreath/p/7274195.html 指定克隆远端分支 ht ...

  9. python之django基础

    看了不是同一期的视频,发现9期老师线性引入的方式,讲得django更加易于理解掌握. 抱歉的是,笔记没有整理就发上来了.希望看到的人不要被我带偏. 1. 新建Django项目 命令行创建: djang ...

  10. Representations of graphs

    We can choose between two standard ways to represent a graph as a collection of adjacency lists or a ...