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

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

代码演示:

<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 演示结果:

时间: 2024-10-24 02:25:51

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

JavaScript---网络编程(11)--DHTML技术演示(4)-单选框/下拉菜单/添加文件

本节讲述单选框/下拉菜单/添加文件,综合css,html和JavaScript. 单选框: 实现的功能是:(类似平时的性格测试) 先隐藏一部分页面,然后通过点击单选框来显示. 再通过选项的选择-(每个选项有不同的积分)积分的多少来给出评语 演示代码: <html> <head> <title>DHTML技术演示---radio的使用</title> <meta http-equiv="content-Type" content=&q

JavaScript---网络编程(8)-DHTML技术演示(1)

DHTML技术使用的基本思路: 1. 用标签封装数据-html范畴 2. 定义样式-css范畴 3. 明确事件源.事件和要处理的节点-dom范畴 4. 明确具体的操作方式,其实就是事件的处理内容(过程)-js范畴 新闻字体 第一种方式:html范畴 演示代码: <html> <head> <title>>DHTML技术演示---新闻字体1</title> <meta http-equiv="content-type" cont

JavaScript---网络编程(12)--DHTML技术演示(5)-form表单验证技术(正则)

这里不进行很复杂的后台验证以及JavaScript的正则表达式,只是简单的介绍下这个技术,简单的后台接收与跳转,大概了解怎么验证的就可以.具体的技术,我后面还会继续写博客的.本人也还在学习中. 表单验证1-简单验证 进行简单的验证,用户名必须为abcd,密码长度必须大于等于6 然后根据用户输入的数据,在后面给出提示. 代码演示: <html> <head> <title>DHTML技术演示---表单验证</title> <meta http-equiv

JavaScript---网络编程(9-2)--DHTML技术演示(2-2)-表格加强

对上篇博客的最后那个表格隔行高亮显示加了个功能,鼠标监听和年龄从小到大排序. 演示代码: <html> <head> <title>DHTML技术演示---表格中页面中的显示操纵--行间隔高亮显示</title> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <style type="text/css&

一起谈.NET技术,c#数据库存取图片的三种方式

第一种方式   文件夹与数据库配合 近来做了不少关于这块的功能 ,随着网络的飞速发展,网络存取图片已不再是神话,而成为了一种时尚,如果是你 是用Asp.net开发的话,可能更多的人会考虑使用数据库存储图片的路经,而在文件夹是存储图片的方式.这种方式主要的方法有两个一个就是怎么样读取图片,怎么样存储图上,读取的话我就不多说的这个是最简单的了,只要大家把地址=给存储图片的对象就行了,在取的时候一般要使用相对地址也就是"~" 如下所: ImageUrl="../CardDeal/S

Java网络编程从入门到精通(2):创建InetAddress对象的四个静态方法

InetAddress类是Java中用于描述IP地址的类.它在java.net包中.在Java中分别用Inet4Address和Inet6Address类来描述IPv4和IPv6的地址.这两个类都是InetAddress的子类.由于InetAddress没有public的构造方法,因此,要想创建InetAddress对象,必须得依靠它的四个静态方法.InetAddress可以通过getLocalHost方法得到本机的InetAddress对象,也可以通过getByName.getAllByNam

Java网络编程从入门到精通(25):创建ServerSocket对象

ServerSocket类的构造方法有四种重载形式,它们的定义如下: public ServerSocket() throws IOException public ServerSocket(int port) throws IOException public ServerSocket(int port, int backlog) throws IOException public ServerSocket(int port, int backlog, InetAddress bindAddr

Java编程那些事儿105——网络编程技术4

13.2.4 UDP编程 网络通讯的方式除了TCP方式以外,还有一种实现的方式就是UDP方式.UDP(User Datagram Protocol),中文意思是用户数据报协议,方式类似于发短信息,是一种物美价廉的通讯方式,使用该种方式无需建立专用的虚拟连接,由于无需建立专用的连接,所以对于服务器的压力要比TCP小很多,所以也是一种常见的网络编程方式.但是使用该种方式最大的不足是传输不可靠,当然也不是说经常丢失,就像大家发短信息一样,理论上存在收不到的可能,这种可能性可能是1%,反正比较小,但是由

基于Winsock API的VC网络编程实战

随着计算机信息技术的飞速发展,互联网与人类社会的工作.生活越来越紧密相关,它已 经成为人类获取.交流信息的重要途径和手段.所以当前对于开发人员来说,网络编程已是 必备的技能.本实例详细介绍了如何利用Winsock API编写网络应用程序. 一.实现 方法 在网络编程中最常用的方案便是Client/Server (客户机/服务器)模型.在这种 方案中客户应用程序向服务器程序请求服务.一个服务程序通常在一个众所周知的地址监听 对服务的请求,也就是说,服务进程一直处于休眠状态,直到一个客户向这个服务的