(9)动态创建表格、动态删除行列

一、点击按钮创建5行6列的表格,原始方式:创建节点添加节点方法

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<style type="text/css">
    table
  {
      border:#0FC 1px solid;
      width:600px;
      border-spacing:0px;/*单元格之间的距离*/

  }
  table td
  {
      border:#000 1px solid;
      width:100px;

      padding:0px;

  }
</style>
</head>

<body>
         <!--在页面中床架一个五行六列的表格
         1:事件源,比如按钮
         2:必须有一个生成表格节点的存储位置
         -->
         <script type="text/javascript">
           function creTable()
           {

               //1,创建表格节点
               var oTabNode=document.createElement("table");

               //2.创建tbody节点
               var oTbdNode=document.createElement("tbody");
               for(var x=0;x<5;x++)
                { //3,创建tr节点
                      var oTrNode=document.createElement("tr");

                       //4,创建td节点
                       for(var i=0;i<6;i++)//6列
                       {
                          var oTdNode=document.createElement("td");
                          oTdNode.innerHTML="这是单元格";

                          //tr中添加td
                          oTrNode.appendChild(oTdNode);
                       }
                       //tb中添加tr
                       oTbdNode.appendChild(oTrNode);
                }
                       //table中添加tb
                       oTabNode.appendChild(oTbdNode);

                       //div中添加tab
                       document.getElementsByTagName("div")[0].appendChild(oTabNode);

           }
         </script>
         <input type="button" value="创建表格" onclick="creTable()"/>
         <hr/>
         <div></div>
</body>
</html>

二、利用DHTML节点对象思想创建表格

 function creTable(x,y)
           {
               //既然是操作表格,则使用表格节点独享的方法来完成


                var oTabNode=document.createElement("table");
               for(var i=0;i<x;i++)
                 {  //表格的下层是行tr,要创建tr,则查看表格方法
                    var oTrNode=oTabNode.insertRow();
                    for(var j=0;j<y;j++)
                    {
                        //tr的下层是td,要创建td,则查看tr:在表格行tr中创建单元格,并将单元格添加到cells中
                        var oTdNode=oTrNode.insertCell();//完成创建和添加操作
                        oTdNode.innerHTML="这是一个单元格";
                    }
                 }//将表格节点谈价到div中
                    document.getElementsByTagName("div")[0].appendChild(oTabNode);

                 //若想只创建一次表格,则可以用button中的方法:disabled:设置或者获取控件的状态

                 document.getElementsByTagName("input")[0].disabled=true; 


           }

三、创建用户自定义的行数和列数

function creTable()
           {
               //既然是操作表格,则使用表格节点独享的方法来完成
               //获取行数和列数,将字符串转换为整数
               var x=parseInt(document.getElementsByName("line")[0].value);
               var y=parseInt(document.getElementsByName("row")[0].value);
                var oTabNode=document.createElement("table");
               for(var i=0;i<x;i++)
                 {  //表格的下层是行tr,要创建tr,则查看表格方法
                    var oTrNode=oTabNode.insertRow();
                    for(var j=0;j<y;j++)
                    {
                        //tr的下层是td,要创建td,则查看tr:在表格行tr中创建单元格,并将单元格添加到cells中
                        var oTdNode=oTrNode.insertCell();//完成创建和添加操作
                        oTdNode.innerHTML="这是一个单元格";
                    }
                 }//将表格节点谈价到div中
                    document.getElementsByTagName("div")[0].appendChild(oTabNode);

                 //若想只创建一次表格,则可以用button中的方法:disabled:设置或者获取控件的状态

                 document.getElementsByName("cli")[0].disabled=true; 


           }
         </script>
         表格行数<input type="text" name="line" value=""/><br/>
         表格列数<input type="text" name="row" value=""/><br/>       
         <input type="button" name="cli" value="点击创建表格" οnclick="creTable()"/>

         <hr/>
         <div></div>
</body>
</html>

四、删除行和列

 function delRow()
           {
               //获取表格
               var TabNode=document.getElementById("Tabid");

               if(TabNode==null)
               {
                   alert("表格不存在");
                   return;//就不用执行以下的代码了
               }

               var delRowNum=document.getElementsByName("delRow")[0].value;

               if(delRowNum>=1 && delRowNum<=TabNode.rows.length)
                {

                     TabNode.deleteRow(delRowNum-1);
                }
                else
                {
                   alert("要删除的行不存在啊,请重新设定要删除的行");
                }
           }

           //思想:删除列,就是删除每一行中的同一个单元格
          function delCol()
           {
               //获取表格,并判断表格是否存在
               var TabNode=document.getElementById("Tabid");
                if(TabNode==null)
               {
                   alert("表格不存在");
                   return;//就不用执行以下的代码了
               }





               var delCellNum=document.getElementsByName("delCol")[0].value;
                if(delCellNum>=1 && delCellNum<=TabNode.rows[0].cells.length)
                {

                    //要删除每一行的这一列
                    for(var i=0;i<TabNode.rows.length;i++)
                    {
                        TabNode.rows[i].deleteCell(delCellNum-1);

                    }
                }
                else
                {
                    alert("要删除的列不存在啊,请重新设定要删除的列");
                }



           }
         </script>
         表格行数<input type="text" name="line" value=""/><br/>
         表格列数<input type="text" name="row" value=""/><br/>       
         <input type="button" name="cli" value="点击创建表格" οnclick="creTable()"/>
         <hr/>
         要删除的行<input type="text" name="delRow" value=""/>
         <input type="button" name="delRowCli" value="删除此行" οnclick="delRow()"/><br />

         要删除的列<input type="text" name="delCol" value=""/>
         <input type="button" name="delColCli" value="删除此列" οnclick="delCol()"/>
         <hr/>
         <div></div>
</body>
</html>
posted @ 2017-08-07 15:40  测试开发分享站  阅读(158)  评论(0编辑  收藏  举报