用js实现动态添加表格数据

第一种方式:

<!DOCTYPE HTML>
< html >
< head >
< meta  charset = UTF -8>
< title >table</ title >
< style >
table {
     margin:auto;
     width: 60%;
     border: 1px solid black;
     border-collapse: collapse;
}
 
table caption {
     color: blue;
     font: 34px consolas bold;
}
 
table th, table td {
     border: 1px solid black;
     text-align:center;
}
 
table th {
     font: 20px consolas bold;
     background-color: gray;
}
 
table tr:nth-child(n+2){
     background-color: cyan;
}
 
table tr:nth-child(2n+2)  {
     background-color: red;
}
</ style >
< script >
var data = [
     {id: "001", fullname: "张三", sex: "男", score: [98,33,48]},
     {id: "002", fullname: "李四", sex: "w", score: [11,22,33]},
     {id: "003", fullname: "kyo", sex: "m", score: [22,33,55]},
     {id: "004", fullname: "yamazaki", sex: "w", score: [99, 100, 80]}
];
 
var Student = function (id, fullname, sex, score)
{
     this.id = id;
     this.fullname = fullname;
     this.sex = sex;
     this.score = score;
}
 
var Score = function (chinese, math, english)
{
     this.chinese = chinese;
     this.math = math;
     this.english = english;
}
 
var students = [];
for (var i = 0; i < data.length; i++)
{
     var d = data[i];
     var s = d["score"];
     students.push(new Student (d["id"], d["fullname"], d["sex"], new Score(s[0], s[1], s[2])));
}
 
onload = function ()
{
     var table = document.createElement("table");
     var tbody = document.createElement("tbody");
     table.appendChild(tbody);
     var caption = table.createCaption();
     caption.innerHTML = "学生成绩表";
     var tr = tbody.insertRow (0);
     var str = "学号,姓名,性别,语文,数学,英语".split(",");
     for (var i = 0; i < str.length; i++)
     {
         var th = document.createElement("th");
         th.innerHTML = str[i];
         tr.appendChild (th);
     }
     for (var i = 0; i < students.length; i++)
     {
         var tr = tbody.insertRow (tbody.rows.length);
         var obj = students[i];
         for (var p in obj)
         {
             var op = obj[p];
             if (p != "score")
             {
                 var td = tr.insertCell (tr.cells.length);
                 td.innerHTML = op;
             }
             else
             {
                 for (var p in op)
                 {
                     var td = tr.insertCell (tr.cells.length);
                     td.innerHTML = op[p];
                 }
             }
         }
     }
     document.body.appendChild(table);
}
</ script >
< body >
 
</ body >
</ html >

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

第二种方式


利用javascript ,动态向表格中添加数据

1. 首先先写出表格的表头和主干部分

[html]  view plain  copy
  1. <table width="600" border="1" cellspacing="0">  
  2.    <thead>  
  3.       <tr>  
  4.          <th>编号</th>  
  5.          <th>姓名</th>  
  6.          <th>职位</th>  
  7.          <th>操作</th>  
  8.       </tr>   
  9.    </thead>  
  10.    <tbody id="tbMain"></tbody>  
  11. </table>  

2. 接下来就是网表格里面添加数据,这里用的是原生javascript

[javascript]  view plain  copy
  1. <script type="text/javascript">  
  2.     
  3.   //模拟一段JSON数据,实际要从数据库中读取  
  4.   var per = [  
  5.             {id:001,name:'张珊',job:'学生'},  
  6.             {id:002,name:'李斯',job:'教师'},  
  7.             {id:003,name:'王武',job:'经理'}  
  8.             ];   
  9.     
  10.   window.onload = function(){  
  11.       var tbody = document.getElementById('tbMain');  
  12.         
  13.       for(var i = 0;i < per.length; i++){ //遍历一下json数据  
  14.           var trow = getDataRow(per[i]); //定义一个方法,返回tr数据  
  15.           tbody.appendChild(trow);  
  16.         }  
  17.         
  18.       }  
  19.         
  20.   function getDataRow(h){  
  21.      var row = document.createElement('tr'); //创建行  
  22.        
  23.      var idCell = document.createElement('td'); //创建第一列id  
  24.      idCell.innerHTML = h.id; //填充数据  
  25.      row.appendChild(idCell); //加入行  ,下面类似  
  26.        
  27.      var nameCell = document.createElement('td');//创建第二列name  
  28.      nameCell.innerHTML = h.name;  
  29.      row.appendChild(nameCell);  
  30.        
  31.      var jobCell = document.createElement('td');//创建第三列job  
  32.      jobCell.innerHTML = h.job;  
  33.      row.appendChild(jobCell);  
  34.        
  35.      //到这里,json中的数据已经添加到表格中,下面为每行末尾添加删除按钮  
  36.        
  37.      var delCell = document.createElement('td');//创建第四列,操作列  
  38.      row.appendChild(delCell);  
  39.      var btnDel = document.createElement('input'); //创建一个input控件  
  40.      btnDel.setAttribute('type','button'); //type="button"  
  41.      btnDel.setAttribute('value','删除');   
  42.        
  43.      //删除操作  
  44.      btnDel.οnclick=function(){  
  45.          if(confirm("确定删除这一行嘛?")){  
  46.              //找到按钮所在行的节点,然后删掉这一行  
  47.              this.parentNode.parentNode.parentNode.removeChild(this.parentNode.parentNode);  
  48.              //btnDel - td - tr - tbody - 删除(tr)  
  49.              //刷新网页还原。实际操作中,还要删除数据库中数据,实现真正删除  
  50.              }  
  51.          }  
  52.      delCell.appendChild(btnDel);  //把删除按钮加入td,别忘了  
  53.        
  54.      return row; //返回tr数据      
  55.      }      
  56. </script>  


3. 网页测试

显示成功,点击删除按钮,并确定即可删除这一行

删除第二行,可以!


  • 30
    点赞
  • 150
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
你可以使用HTML和JavaScript来实现表格添加数据并带样式设置的功能。以下是一个稍微复杂一些的示例代码: HTML代码: ```html <table id="myTable"> <thead> <tr> <th>Name</th> <th>Age</th> </tr> </thead> <tbody> </tbody> </table> <form> <input type="text" id="nameInput" placeholder="Name"> <input type="number" id="ageInput" placeholder="Age"> <button type="button" onclick="addRow()">Add</button> </form> ``` CSS代码: ```css table { border-collapse: collapse; width: 100%; } th, td { padding: 8px; text-align: left; border-bottom: 1px solid #ddd; } th { background-color: #4CAF50; color: white; } ``` JavaScript代码: ```javascript function addRow() { // 获取表格和输入框中的数据 var table = document.getElementById("myTable"); var name = document.getElementById("nameInput").value; var age = document.getElementById("ageInput").value; // 创建新的行和单元格 var row = table.insertRow(-1); var nameCell = row.insertCell(0); var ageCell = row.insertCell(1); // 将输入框中的数据添加到新的单元格中 nameCell.innerHTML = name; ageCell.innerHTML = age; // 设置行样式 row.style.backgroundColor = "#f2f2f2"; // 设置单元格样式 nameCell.style.border = "1px solid #ddd"; ageCell.style.border = "1px solid #ddd"; ageCell.style.textAlign = "center"; // 清空输入框中的数据 document.getElementById("nameInput").value = ""; document.getElementById("ageInput").value = ""; } ``` 此代码将在表格的末尾添加新的行,并设置了行和单元格的样式。你可以根据需要修改此代码,例如添加更多的样式设置或删除行的功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值