JavaScript---网络编程(9-1)--DHTML技术演示(2-1)-表格创建的几种方式

简介: 一:用最底层的方式,该方式用来创建别的对象树也可以代码演示: DHTML技术演示---表格创建--用最底层的方式,其实该方式用来创建别的对象树也可以 table{ border:#ff80...

一:用最底层的方式,该方式用来创建别的对象树也可以

代码演示:

<html>
  <head>
    <title>DHTML技术演示---表格创建--用最底层的方式,其实该方式用来创建别的对象树也可以</title>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
    <style type="text/css">
        table{
            border:#ff80ff;
            width:500px;
            border-collapse:collapse;
        }
        table td{
            border:#0000ff 1px solid;
            padding:5px;/*内补丁*/
        }
    </style>
    <script type="text/javascript">
        function createTable(){
            //思路: 把表格子树中的每个节点对象创建出来,然后把这些对象组装成一棵树。最后再把这棵树挂到div对象下面
            //1通过document.createElement()创建每个标签对象
            var oTableNode = document.createElement("table");
            var oTbdNode = document.createElement("tbody");
            var oTrNode = document.createElement("tr");
            var oTdNode = document.createElement("td");
            oTdNode.innerHTML="单元格中的内容";
            //2把以上节点组装成一棵树
            oTrNode.appendChild(oTdNode);
            oTbdNode.appendChild(oTrNode);
            oTableNode.appendChild(oTbdNode);

            //3把这棵子树加到div对象下面
            document.getElementsByTagName("div")[0].appendChild(oTableNode);
        }

    </script>


  </head>

  <body>
    <input type="button" value="创建表格" onclick="createTable()" />
    <hr/>
    <div></div>

  </body>
</html>

360浏览器8.1 演示结果:

点击按钮:就创建一个表格:

二、表格创建–用table对象和tr对象中现有的方法来操纵表格

代码演示:

<html>
  <head>
    <title>DHTML技术演示---表格创建--用table对象和tr对象中现有的方法来操纵表格</title>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
    <style type="text/css">
        table {
            border:#ff80ff;
            width:800px;
            border-collapse:collapse;
            /*separate  :  默认值。边框独立(标准HTML) 
            collapse  :  相邻边被合并 
            */
        }
        table td{
            border:#0000ff 1px solid;
            padding:5px;
        }
     </style>
     <script type="text/javascript">
        function createTable(){
            var oTableNode = document.createElement("table");
            var oTrNode = oTableNode.insertRow();//往表格对象中插入一个tr对象(空行),并返回该tr对象
            var oTdNode = oTrNode.insertCell();//往tr对象中插入一个Cell即td对象
            oTdNode.innerHTML="单元格中的内容";
            document.getElementsByTagName("div")[0].appendChild(oTableNode);
        }

        function createTable2(){
            var oTableNode = document.createElement("table");//创建表格对象

            //多行多列的表格,如5*6
            for(var x=1;x<=5;x++){

                var oTrNode = oTableNode.insertRow();//往表格对象中插入一个tr对象(空行),并返回该tr对象
                for(var y=1;y<=6;y++){
                    var oTdNode = oTrNode.insertCell();//往tr对象中插入一个Cell即td对象
                    oTdNode.innerHTML="单元格"+x+"-"+y+"中的内容";
                }
            }
            document.getElementsByTagName("div")[0].appendChild(oTableNode);
        }

        //用户自定义行号与列号的方式创建表格
        function createTable3(){
            var oTableNode = document.createElement("table");//创建表格对象
            //给表格动态地添加属性(id)
            //法1
            //oTableNode.id = "tableId";//变量方式
            //法2
            oTableNode.setAttribute("id","tableId");//函数方式

            //由用户指定行数和列数的表格
            //获取用户输入飞行数和列数
            var rowNum =parseInt(document.getElementsByName("rowNum")[0].value);
            var colNum =parseInt(document.getElementsByName("colNum")[0].value);

            //健壮性防护
            if(isNaN(rowNum) || isNaN(colNum) || rowNum<=0 || colNum<=0 ){
                alert("行号和列号必须是大于0的整数");
                return;
            }

            for(var x=1; x<=rowNum;x++){
                //往表格对象中插入一个tr对象(空行),并返回该tr对象
                var oTrNode =oTableNode.insertRow();
                for(var y=1;y<=colNum;y++){
                    //往tr对象中插入一个Cell即td对象
                    var oTdNode = oTrNode.insertCell();                 
                    oTdNode.innerHTML="单元格"+x+"-"+y+"中的内容";
                }
            }
            document.getElementsByTagName("div")[0].appendChild(oTableNode);            
        }


        //删除指定行
        function delRow(){
            //由指定的id来获取该表格
            var oTableNode = document.getElementById("tableId");
            //alert(oTableNode.nodeName);//TABLE
            //alert(oTableNode);
            //防护
            if(oTableNode==null){
                alert("表格不存在");
                return;
            }

            //删除行的处理代码
            //获取用户输入的行号
            var delRowNum = parseInt(document.getElementsByName("delRowNum")[0].value);

            //alert(delRowNum);
            //行号的健壮性防护
            if(isNaN(delRowNum) ){
                alert("行号必须是数字");
                return;
            }
            if(!(delRowNum>0 && delRowNum<=oTableNode.rows.length)){
                alert("该行不存在!");
                return;
            } 
            //删除行
            oTableNode.deleteRow(delRowNum-1);          
        }

        //删除指定的列
        function delCol(){
            //由指定id来获取该表格
            var oTableNode = document.getElementById("tableId");
            //alert(oTableNode.nodeName);
            //alert(oTableNode);
            //防护
            if(oTableNode==null){
                alert("表格不存在!");
                return;
            }
            //删除列的处理代码
            //获取用户输入的列号
            var delColNum = parseInt(document.getElementsByName("delColNum")[0].value);

            //alert(delColNum);
            //行号的健壮性防护
            if(isNaN(delColNum)){
                alert("列号必须是数字");
                return ;                
            }

            if(!(delColNum>0 && delColNum<=oTableNode.rows[0].cells.length)){
                alert("该列不存在!");
                return;
            }
            //删除列:※※表格中没有现成的删除列的函数,因此只能自己遍历行,然后通过tr对象中的deleteCell来实现
            for(var x=0;x<oTableNode.rows.length;x++){
                oTableNode.rows[x].deleteCell( delColNum-1 );
            }
        }

     </script>


  </head>

  <body>
    <input type="button" value="创建表格" onclick="createTable()" />
    <input type="button" value="创建多行多列表格" onclick="createTable2()" />
    <br/><br/><br/>
    <!--添加-->
    行数:<input type="text" name="rowNum" /> &nbsp;&nbsp;
    列数:<input type="text" name="colNum" /> 
    <input type="button" value="创建表格" onclick="createTable3()" />
    <br/><br/><br/>

    <!--删除-->
    <h3>删除前面由用户指定行列号方式创建的表格</h3>
    行号:<input type="text" name="delRowNum"/> &nbsp;&nbsp;
    <input type="button" value="删除行" onclick="delRow()" />
    列号:<input type="text" name="delColNum"/>
    <input type="button" value="删除列" onclick="delCol()" />

    <hr/>

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

360浏览器8.1 演示结果:

创建一个9行9列的表格,然后删除了第二行和第二列

三、表格中页面中的显示操纵–行间隔高亮显示

代码演示:

<html>
  <head>
    <title>DHTML技术演示---表格中页面中的显示操纵--行间隔高亮显示</title>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
    <style type="text/css">
        @import url(table.css);
        .one{
            background:#00ff00;
        }
        .two{
            background:rgb(210,0,0);
        }       
    </style>
    <script type="text/javascript">
        function trColor(){
            var oTableNode = document.getElementById("dataTable");
            var arrTrs = oTableNode.rows;//rows为表格属性,返回所以的行
            for(var x=1;x<arrTrs.length; x++){
                if(x%2==1){
                    arrTrs[x].className="one";
                }else{
                    arrTrs[x].className="two";
                }
            }
        }
        //onload = trColor();//这种方式赋值就是执行(本例中,这一句没有效果,因为table对象还没出来。
        //但如果把该段代码放在<table>之后则有效果),而且只能执行这一个方法

        onload=function(){
            trColor();
            //还可以在这里写其它代码,甚至调用其它函数
        };
        //这种方式只是给onload事件注册响应函数,解析该句代码时函数并没有执行
        //而是在该事件发生时才会调用。并且可以在function()中调用多个函数.

    </script>


  </head>

  <body>
        <table id="dataTable">
            <tr>
                <th>姓名</th> <th>年龄</th> <th>地址</th>
            </tr>

            <tr>
                <td>张三</td> <td>23</td> <td>湖南长沙</td>
            </tr>
            <tr>
            <td>李四</td> <td>23</td> <td>湖南长沙</td>
            </tr>
            <tr>
                <td>王五</td> <td>23</td> <td>湖南长沙</td>
            </tr>
            <tr>
                <td>Jack</td> <td>23</td> <td>湖南长沙</td>
            </tr>
            <tr>
                <td>Rose</td> <td>23</td> <td>湖南长沙</td>
            </tr>
            <tr>
                <td>Jack</td> <td>23</td> <td>湖南长沙</td>
            </tr>
            <tr>
                <td>Rose</td> <td>23</td> <td>湖南长沙</td>
            </tr>
            <tr>
                <td>Jack</td> <td>23</td> <td>湖南长沙</td>
            </tr>
            <tr>
                <td>Rose</td> <td>23</td> <td>湖南长沙</td>
            </tr>
        </table>

  </body>
</html>

table.css:

table {
    border:#ff80ff 1px solid;
    /*solid  :  实线边框 */
    width:800px;
    border-collapse:collapse;
    /*separate  :  默认值。边框独立(标准HTML) 
    collapse  :  相邻边被合并 
    */  
}
table td{/*table 下面的td*/
    border:#0000ff 1px solid;
    padding:5px;/*内补丁*/
}
table th{
    border:#ff80ff 1px solid;
    padding:5px;
    background-color:#c0c0c0;
}

360浏览器8.1 演示结果:

目录
相关文章
|
15天前
|
SQL 安全 算法
网络安全与信息安全:防御前线的关键技术与意识
【4月更文挑战第3天】在数字化时代,网络安全与信息安全已成为维护信息完整性、确保数据私密性和保障系统可用性的基石。本文深入探讨了网络安全漏洞的概念、加密技术的应用以及提升安全意识的重要性,旨在为读者提供全面的网络安全知识框架,以应对日益复杂的网络威胁。
|
23天前
|
存储 安全 网络安全
云计算与网络安全:新时代的技术挑战与应对策略
随着云计算技术的快速发展,网络安全问题变得愈发突出。本文探讨了云服务、网络安全以及信息安全在当今技术领域面临的挑战,并提出了相应的解决方案。通过分析现状和未来趋势,可以更好地了解云计算与网络安全的关系,为构建安全可靠的云服务提供参考。
|
9天前
|
数据采集 大数据 数据安全/隐私保护
掌握网络抓取技术:利用RobotRules库的Perl下载器一览小红书的世界
本文探讨了使用Perl和RobotRules库在遵循robots.txt规则下抓取小红书数据的方法。通过分析小红书的robots.txt文件,配合亿牛云爬虫代理隐藏真实IP,以及实现多线程抓取,提高了数据采集效率。示例代码展示了如何创建一个尊重网站规则的数据下载器,并强调了代理IP稳定性和抓取频率控制的重要性。
掌握网络抓取技术:利用RobotRules库的Perl下载器一览小红书的世界
|
9天前
|
存储 安全 网络安全
未来云计算与网络安全:技术创新与挑战
随着数字化时代的来临,云计算与网络安全成为了当今科技领域的焦点。本文从技术创新和挑战两个方面探讨了未来云计算与网络安全的发展趋势。在技术创新方面,人工智能、区块链和量子计算等新兴技术将为云计算和网络安全带来前所未有的发展机遇;而在挑战方面,隐私保护、数据泄露和网络攻击等问题也将不断考验着技术研究者和行业从业者的智慧和勇气。未来,只有不断创新,同时加强安全防护,才能实现云计算与网络安全的良性发展。
12 1
|
10天前
|
传感器 监控 安全
|
10天前
|
安全 SDN 数据中心
|
15天前
|
机器学习/深度学习 安全 网络安全
网络安全与信息安全:防御前沿的技术与策略
【4月更文挑战第4天】在数字化时代,数据成为了新的货币,而网络安全则是保护这种“货币”不被盗窃的关键。本文将深入探讨网络安全漏洞的概念、加密技术的最新进展以及提升个人和企业安全意识的策略。我们将分析当前网络威胁的面貌,探索如何通过多层次的防护手段来构建坚固的信息防线,并强调教育与培训在维护网络安全中的核心作用。
|
18天前
|
SQL 安全 网络安全
网络防线之盾:揭秘网络安全漏洞与防御技术
在数字化时代,网络安全成为守护信息完整性、保障用户隐私的关键。本文深入探讨了网络安全领域内常见的安全漏洞,分析了加密技术在数据保护中的作用,并强调了提升个人和企业安全意识的重要性。通过实例和案例分析,文章为读者提供了一道了解和应对网络威胁的窗口,同时指出了未来网络安全发展的趋势和挑战。
15 2
|
20天前
|
缓存 网络协议 数据库连接
【底层服务/编程功底系列】「网络通信体系」深入探索和分析TCP协议的运输连接管理的核心原理和技术要点
【底层服务/编程功底系列】「网络通信体系」深入探索和分析TCP协议的运输连接管理的核心原理和技术要点
20 0
|
22天前
|
存储 运维 安全
云擎技术:通信网络单元定级备案指南
简介: 通信网络单元定级备案是指相关基础电信企业、增值电信企业要对本单位管理、运行的公用通信网和互联网及其各类信息系统进行单元划分,按照《通信网络安全防护管理办法》(工业和信息化部令第11号)的规定开展定级工作,并在工业和信息化部“通信网络安全防护管理系统”报送各单元的定级信息。
27 2