+发表新主题
查看: 1796|回复: 0

[代码片段] DOM table对象

[复制链接]

[代码片段] DOM table对象

[复制链接]
殷三姗 发表于 2016-1-20 20:10:30 浏览:  1796 回复:  0 [显示全部楼层] |只看大图 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
1. Table对象

     属性:table.rows : 获得所有tr对象

     方法:

        var tr=table.insertRow([index]);

                    如果index不省略,会在index位置插入一行

                省略index,在table结尾追加一个新行

           table.deleteRow(index); 删除index位置的行

             强调:删除行只能用行下标


    TableRow对象

        属性:tr.cells : 获取当前行中所有td

                  tr.rowIndex : 获得当前trtable中的位置下标

       方法:

            var td=tr.insertCell(index);

             强调:只能创建td元素

          tr.deleteCell(index); 删除格,必须用下标


    TableCell对象

       属性:td.cellIndex : 获得td在当前行中的位置下标


       警告 与 确认的比较:

             警告:alert("xxx"),只能选择确定

             确认:confirm("xxx"),两个按钮:确定和取消

                   如果点确定,返回true,否则返回false


例如:

   

  1. <!DOCTYPE HTML>

  2. <html>

  3. <head>

  4. <title>动态操作表格</title>

  5. <meta charset="utf-8" />

  6. <style>

  7. table{width:500px; border-collapse:collapse;

  8. text-align:center;

  9. }

  10. td,th{border:1px solid #ccc}

  11. </style>

  12. <script>

  13. var data='[{"id":1001,"name":"非常可乐","price":2.5,"count":3000},{"id":1003,"name":"果粒橙","price":2.5,"count":5000},{"id":1011,"name":"芬达","price":2.3,"count":1000}]';

  14. //本地用eval将data解析为js中的数组或对象

  15. var products=eval("("+data+")");

  16. console.log(products.length);

  17. window.onload=function(){

  18.     //加载表头

  19. //创建空data元素,保证存在table中

  20. var table=document.createElement("table");

  21. var thead=document.createElement("thead");

  22.         table.appendChild(thead);

  23. var tr=thead.insertRow();

  24. for(var key in products[0]){

  25.     var th=document.createElement("th");

  26. th.innerHTML=key;

  27. tr.appendChild(th);

  28. }//添加完属性表头后,单独添加操作表头

  29. var th=document.createElement("th");

  30.    tr.appendChild(th);

  31.    th.innerHTML="操作行";

  32.    //创建表头下面的主题

  33.            tbody=document.createElement("tbody");

  34.    table.appendChild(tbody);

  35. for(var i=0;i<products.length;i++){//遍历外层数组

  36.    var tr=tbody.insertRow();

  37.             for(var key in products[i]){//遍历内层关联数组

  38. var td=tr.insertCell();//每遍历关联数组一行,创建一列

  39. td.innerHTML=products[i][key];//将每个值压入列中

  40. }

  41. var td=tr.insertCell();

  42.             var btn=document.createElement("button");

  43.             btn.innerHTML="删除";

  44. td.appendChild(btn);

  45.             /*为按钮动态绑定事件*/

  46. btn.onclick=function(){//this-->btn

  47. var tr=this.parentNode.parentNode;

  48. //找到this所在行中第2个cell

  49. var pname=tr.cells[1].innerHTML;

  50. if(confirm("是否删除 "+pname+" ?")){

  51. table.deleteRow(tr.rowIndex);

  52. }

  53. }

  54.     //将table追加到id为data的div元素下

  55.    document.getElementById("data").appendChild(table);

  56. }

  57. }

  58. </script>

  59. </head>

  60. <body>

  61. <!--<button onclick="createTable()">创建表格</button>

  62. <button onclick="fillData()">加载数据</button>-->

  63. <div id="data"></div>

  64. </body>

  65. </html>  
复制代码
其页面效果如下:

   200956jaylyagahjy7a98t.png

点击删除按钮后效果:

   200956jaylyagahjy7a98t.png    

点击确认后效果:

    200956jaylyagahjy7a98t.png   

回复

使用道具 举报


您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版| 赣南网

© 2013-2016 Comsenz Inc. Powered by Discuz! X3.4

用微信扫一扫

赣南网