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

简介: 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">
        @import url(table.css);
        .one{
            background:#00ff00;
        }
        .two{
            background:rgb(210,0,0);
        }
        .over{
            background-color:#ffff00;
        }   
    </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";
                }
                //为每一行动态注册事件处理方法
                var oldClassName;
                arrTrs[x].onmouseover=function(){
                    //监听鼠标-移动到那一行
                    oldClassName=this.className;
                    this.className="over";
                };
                arrTrs[x].onmouseout=function(){
                    //鼠标监听-移开
                    this.className=oldClassName;
                };
            }
        }
        //onload = trColor();//这种方式赋值就是执行(本例中,这一句没有效果,因为table对象还没出来。
        //但如果把该段代码放在<table>之后则有效果),而且只能执行这一个方法
        onload=function(){
            trColor();
            //还可以在这里写其它代码,甚至调用其它函数
        };
        //这种方式只是给onload事件注册响应函数,解析该句代码时函数并没有执行
        //而是在该事件发生时才会调用。并且可以在function()中调用多个函数.
    </script>
    <script type="text/javascript">
        function sortTable(){
            var oTableNode = document.getElementById("dataTable");
            var arrTrs = oTableNode.rows;
            //思路:用一个新的容器来存放表格的行对象数组,并在新数组中进行排序,把排序后的每个元素(行对象)依次添加到表格对象中
            //放到新容器arrTrs2中
            var arrTrs2 = [];
            for (var x = 1; x < arrTrs.length; x++) {
                arrTrs2[x - 1] = arrTrs[x];
            }
            //arrTrs2数组可以看成arrTrs数组的引用
            //对容器arrTrs2中的元素进行排序    
            mySort(arrTrs2);
            //把排序后的行对象重新加到表格中
            for (var x = 0; x < arrTrs2.length; x++) {
                //arrTrs2[x].parentNode.nodeName//TBODY
                arrTrs2[x].parentNode.appendChild(arrTrs2[x]);
                //arrTrs2数组可以看成arrTrs数组的引用
            }
        }
        function mySort(arr){
            for(var x=0;x<arr.length-1;x++){
                for(var y=x+1;y<arr.length;y++){
                    if(parseInt(arr[x].cells[1].innerText) > parseInt(arr[y].cells[1].innerText)){
                        var temp = arr[x];
                        arr[x] = arr[y];
                        arr[y] = temp;
                    }
                }
            }
        }
    </script>
  </head>
  <body>
        <table id="dataTable">
            <tr>
                <th>姓名</th> <th><a href="javascript:void(0)" onclick="sortTable()">年龄</a></th> <th>地址</th>
            </tr>
            <tr>
                <td>张三</td> <td>23</td> <td>湖南长沙</td>
            </tr>
            <tr>
            <td>李四</td> <td>24</td> <td>湖南长沙</td>
            </tr>
            <tr>
                <td>王五</td> <td>53</td> <td>湖南长沙</td>
            </tr>
            <tr>
                <td>Jack</td> <td>65</td> <td>湖南长沙</td>
            </tr>
            <tr>
                <td>Rose</td> <td>13</td> <td>湖南长沙</td>
            </tr>
            <tr>
                <td>Jack</td> <td>8</td> <td>湖南长沙</td>
            </tr>
            <tr>
                <td>Rose</td> <td>73</td> <td>湖南长沙</td>
            </tr>
            <tr>
                <td>Jack</td> <td>29</td> <td>湖南长沙</td>
            </tr>
            <tr>
                <td>Rose</td> <td>20</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;
}

演示结果:

鼠标监听:

image.png

点一下年龄:实现表格按年龄从小到大排序

image.png

现在我们觉得上面的不好,只能从小到大排序,而且排序后颜色也变了。不好看,现在我们来对它进行改进。

代码演示:

<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);
        }
        .over{
            background-color:#ffff00;
        }   
        a{
            text-decoration:none;/*装饰-去掉下划线*/
        }
    </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";
                }
                //为每一行动态注册事件处理方法
                var oldClassName;
                arrTrs[x].onmouseover=function(){
                    //监听鼠标-移动到那一行
                    oldClassName=this.className;
                    this.className="over";
                };
                arrTrs[x].onmouseout=function(){
                    //鼠标监听-移开
                    this.className=oldClassName;
                };
            }
        }
        //onload = trColor();//这种方式赋值就是执行(本例中,这一句没有效果,因为table对象还没出来。
        //但如果把该段代码放在<table>之后则有效果),而且只能执行这一个方法
        onload=function(){
            trColor();
            //还可以在这里写其它代码,甚至调用其它函数
        };
        //这种方式只是给onload事件注册响应函数,解析该句代码时函数并没有执行
        //而是在该事件发生时才会调用。并且可以在function()中调用多个函数.
    </script>
    <script type="text/javascript">
        var flag=true;
        function sortTable(aNode){
            var oTableNode = document.getElementById("dataTable");
            var arrTrs = oTableNode.rows;
            //思路:用一个新的容器来存放表格的行对象数组,并在新数组中进行排序,把排序后的每个元素(行对象)依次添加到表格对象中
            //放到新容器arrTrs2中
            var arrTrs2 = [];
            for (var x = 1; x < arrTrs.length; x++) {
                arrTrs2[x - 1] = arrTrs[x];
            }
            //arrTrs2数组可以看成arrTrs数组的引用
            //对容器arrTrs2中的元素进行排序    
            mySort(arrTrs2);
            //把排序后的行对象重新加到表格中
            if(flag){
                for (var x = 0; x < arrTrs2.length; x++) {
                    //arrTrs2[x].parentNode.nodeName//TBODY
                    arrTrs2[x].parentNode.appendChild(arrTrs2[x]);
                    //arrTrs2数组可以看成arrTrs数组的引用
                }
                aNode.innerHTML="年龄↑";
            }else{
                for(var x=arrTrs2.length-1;x>=0;x--){
                    arrTrs2[x].parentNode.appendChild(arrTrs2[x]);
                }
                aNode.innerHTML="年龄↓";
            }
            flag = !flag;
            trColor();
        }
        function mySort(arr){
            for(var x=0;x<arr.length-1;x++){
                for(var y=x+1;y<arr.length;y++){
                    if(parseInt(arr[x].cells[1].innerText) > parseInt(arr[y].cells[1].innerText)){
                        var temp = arr[x];
                        arr[x] = arr[y];
                        arr[y] = temp;
                    }
                }
            }
        }
    </script>
  </head>
  <body>
        <table id="dataTable">
            <tr>
                <th>姓名</th> <th><a href="javascript:void(0)" onclick="sortTable(this)">年龄</a></th> <th>地址</th>
            </tr>
            <tr>
                <td>张三</td> <td>23</td> <td>湖南长沙</td>
            </tr>
            <tr>
            <td>李四</td> <td>24</td> <td>湖南长沙</td>
            </tr>
            <tr>
                <td>王五</td> <td>53</td> <td>湖南长沙</td>
            </tr>
            <tr>
                <td>Jack</td> <td>65</td> <td>湖南长沙</td>
            </tr>
            <tr>
                <td>Rose</td> <td>13</td> <td>湖南长沙</td>
            </tr>
            <tr>
                <td>Jack</td> <td>8</td> <td>湖南长沙</td>
            </tr>
            <tr>
                <td>Rose</td> <td>73</td> <td>湖南长沙</td>
            </tr>
            <tr>
                <td>Jack</td> <td>29</td> <td>湖南长沙</td>
            </tr>
            <tr>
                <td>Rose</td> <td>20</td> <td>湖南长沙</td>
            </tr>
        </table>
  </body>
</html>


演示结果:

image.png

image.png

image.png

目录
相关文章
|
23天前
|
存储 监控 安全
单位网络监控软件:Java 技术驱动的高效网络监管体系构建
在数字化办公时代,构建基于Java技术的单位网络监控软件至关重要。该软件能精准监管单位网络活动,保障信息安全,提升工作效率。通过网络流量监测、访问控制及连接状态监控等模块,实现高效网络监管,确保网络稳定、安全、高效运行。
47 11
|
9天前
|
负载均衡 网络协议 网络性能优化
动态IP代理技术详解及网络性能优化
动态IP代理技术通过灵活更换IP地址,广泛应用于数据采集、网络安全测试等领域。本文详细解析其工作原理,涵盖HTTP、SOCKS代理及代理池的实现方法,并提供代码示例。同时探讨配置动态代理IP后如何通过智能调度、负载均衡、优化协议选择等方式提升网络性能,确保高效稳定的网络访问。
63 2
|
15天前
|
机器学习/深度学习 安全 网络安全
网络安全词云图与技术浅谈
### 网络安全词云图与技术浅谈 本文介绍了通过词云图展示网络安全关键术语的方法,并探讨了构建现代网络安全体系的关键要素。词云图利用字体大小和颜色突出高频词汇,如恶意软件、防火墙、入侵检测系统等。文中提供了生成词云图的Python代码示例,包括安装依赖库和调整参数。此外,文章详细讨论了恶意软件防护、加密技术、身份验证、DDoS防御、社会工程学防范及威胁情报等核心技术,强调了多层次、多维度的安全策略的重要性。
54 11
网络安全词云图与技术浅谈
|
1月前
|
存储 安全 网络安全
云计算与网络安全:技术融合的双刃剑
在数字化浪潮中,云计算如同一股不可阻挡的力量,推动着企业和个人用户步入一个高效、便捷的新时代。然而,随之而来的网络安全问题也如影随形,成为制约云计算发展的阿喀琉斯之踵。本文将探讨云计算服务中的网络安全挑战,揭示信息保护的重要性,并提供实用的安全策略,旨在为读者呈现一场技术与安全的较量,同时指出如何在享受云服务带来的便利的同时,确保数据的安全和隐私。
28 6
|
1月前
|
存储 人工智能 安全
云计算与网络安全:技术融合与挑战
在数字化时代的浪潮中,云计算和网络安全已成为推动社会进步的两大关键技术。本文将探讨云计算服务的发展,网络安全的重要性,以及信息安全技术的演进。我们将通过实例分析,揭示云服务如何增强数据保护,网络安全措施如何应对新兴威胁,以及信息安全技术的创新如何为企业带来竞争优势。文章旨在为读者提供对云计算和网络安全领域的深入理解,并展示它们如何共同塑造我们的未来。
|
1月前
|
监控 安全 网络安全
云计算与网络安全:技术挑战与解决方案
随着云计算技术的飞速发展,其在各行各业的应用越来越广泛。然而,随之而来的网络安全问题也日益凸显。本文将从云服务、网络安全和信息安全等技术领域出发,探讨云计算面临的安全挑战及相应的解决方案。通过实例分析和代码示例,旨在帮助读者更好地理解云计算与网络安全的关系,提高网络安全防护意识。
|
1月前
|
存储 监控 安全
云计算与网络安全:云服务、网络安全、信息安全等技术领域的融合与挑战
本文将探讨云计算与网络安全之间的关系,以及它们在云服务、网络安全和信息安全等技术领域中的融合与挑战。我们将分析云计算的优势和风险,以及如何通过网络安全措施来保护数据和应用程序。我们还将讨论如何确保云服务的可用性和可靠性,以及如何处理网络攻击和数据泄露等问题。最后,我们将提供一些关于如何在云计算环境中实现网络安全的建议和最佳实践。
|
1月前
|
存储 安全 网络安全
云计算与网络安全:云服务、网络安全、信息安全等技术领域的融合与挑战
随着云计算技术的飞速发展,越来越多的企业和个人开始使用云服务。然而,云计算的广泛应用也带来了一系列网络安全问题。本文将从云服务、网络安全、信息安全等方面探讨云计算与网络安全的关系,分析当前面临的挑战,并提出相应的解决方案。
66 3
|
2月前
|
存储 安全 网络安全
云计算与网络安全:技术融合与挑战
本文深入探讨了云计算在提供便捷服务的同时,如何应对日益复杂的网络安全问题。文章首先概述了云计算的基本概念及其服务模型,随后详细分析了网络安全的重要性以及云计算环境中存在的安全挑战。通过具体实例,本文进一步讨论了云服务提供商和用户如何共同维护网络环境的安全,并提出了未来网络安全发展的可能方向。旨在为读者提供一个关于云计算与网络安全相互作用的全面视角,同时强调在这一过程中采取主动防御措施的重要性。
37 1
|
1月前
|
存储 安全 网络安全
云计算与网络安全:技术融合下的挑战与机遇
随着云计算技术的飞速发展,网络安全问题也日益凸显。本文将探讨云计算环境下的网络安全挑战,以及如何通过技术创新来应对这些挑战。我们将分析云服务的安全特性,讨论信息安全的最佳实践,并展望未来云计算与网络安全的发展趋势。