对上篇博客的最后那个表格隔行高亮显示加了个功能,鼠标监听和年龄从小到大排序。

演示代码:

<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;
}

演示结果:

鼠标监听:

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

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

代码演示:

<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>

演示结果:

JavaScript---网络编程(9-2)--DHTML技术演示(2-2)-表格加强的更多相关文章

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

    这里不进行很复杂的后台验证以及JavaScript的正则表达式,只是简单的介绍下这个技术,简单的后台接收与跳转,大概了解怎么验证的就可以.具体的技术,我后面还会继续写博客的.本人也还在学习中. 表单验 ...

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

    本节讲述单选框/下拉菜单/添加文件,综合css,html和JavaScript. 单选框: 实现的功能是:(类似平时的性格测试) 先隐藏一部分页面,然后通过点击单选框来显示. 再通过选项的选择-(每个 ...

  3. JavaScript---网络编程(10)--DHTML技术演示(3)-多选框

    这节讲述多选框的使用,当然,肯定是结合css和Javascript一起的. checkbox的使用1: 演示代码: <html> <head> <meta http-eq ...

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

    一:用最底层的方式,该方式用来创建别的对象树也可以 代码演示: <html> <head> <title>DHTML技术演示---表格创建--用最底层的方式,其实该 ...

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

    DHTML技术使用的基本思路: 1. 用标签封装数据-html范畴 2. 定义样式-css范畴 3. 明确事件源.事件和要处理的节点-dom范畴 4. 明确具体的操作方式,其实就是事件的处理内容(过程 ...

  6. java基础-网络编程(Socket)技术选型入门之NIO技术

    java基础-网络编程(Socket)技术选型入门之NIO技术 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.传统的网络编程 1>.编写socket通信的MyServer ...

  7. Javascript高级编程学习笔记(45)——DOM 操作表格及DOM动态集合

    操作DOM表格 早些时候,HTML 还是以表格布局为主, 所以DOM操作表格是比较重要的一点 但是现如今 有其它的选择,所以表格的操作也就慢慢地淡出了人们的视线 所以这里也就不过多去详细展开,这里也就 ...

  8. JAVA的网络编程

    网络编程 网络编程对于很多的初学者来说,都是很向往的一种编程技能,但是很多的初学者却因为很长一段时间无法进入网络编程的大门而放弃了对于该部分技术的学习. 在 学习网络编程以前,很多初学者可能觉得网络编 ...

  9. JAVA网络编程【转】出处不详

    网络编程 网络编程对于很多的初学者来说,都是很向往的一种编程技能,但是很多的初学者却因为很长一段时间无法进入网络编程的大门而放弃了对于该部分技术的学习. 在 学习网络编程以前,很多初学者可能觉得网络编 ...

随机推荐

  1. 常用数据结构[OpenCV 笔记12]

    Point 二维坐标系下的整数点, 定义如下 typedef Point_<int> Point2i; typedef Point2i Point; typedef Point_<f ...

  2. Android自定义视图教程

    Android自定义视图教程 Android的UI元素都是基于View(屏幕中单个元素)和ViewGroup(元素的集合),Android有许多自带的组件和布局,比如Button.TextView.R ...

  3. 切割TOMCAT日志

    tomcat的catalina.out日志如果不做操作的话,日志就会日积月累的不断增加.我刚入职的时候发现某台服务器的硬盘报警,排查之后我慌了,一个tomcat的日志居然有100G,这怎么可以,在网上 ...

  4. 【转】Vim命令合集以及乱码问题解决

    乱码问题 """""""""""""""" ...

  5. uboot下 Nand flash 启动 内核与根文件系统

    u-boot版本: u-boot-2010.03_tekkamanninja修改的u-boot 1.将uboot通过j-link烧写到norflash,启动后 saveenv 将参数保存到 nandf ...

  6. Java源代码分析与生成

    源代码分析:可使用ANTLRANTLR是开源的语法分析器,可以用来构造自己的语言,或者对现有的语言进行语法分析. JavaParser 对Java代码进行分析 CodeModel 用于生成Java代码 ...

  7. H5 required 改变错误提示oninvalid、oninput、onforminput

    <input type="text" name="password" oninvalid="this.setCustomValidity('XX ...

  8. 丢沙包游戏(或杀人游戏)的C语言实现

    丢沙包游戏(或杀人游戏)用C语言实现: 游戏简述: 杀人游戏(或者丢沙包游戏),设定一些人(人数为:num)一起玩游戏,从某个指定的人(设定为:start)开始轮流扔沙包,扔沙包人的下一个人为1,每隔 ...

  9. C# 在SQLite数据库中存储图像 z

    C# 在SQLite数据库中存储图像 更多 0 C# SQLite   建表语句 CREATE TABLE [ImageStore]([ImageStore_Id] INTEGER NOT NULL ...

  10. load-store/register-memory/register-plus-memory比较

    在理解ARM的load-store架构时,我在百度上搜索了很长时间,但是始终找不到一篇像样的中文文章.最后,在用谷歌搜索的英文网站上终于找到了一些蛛丝马迹.让我们先看一下一篇英文资料. Process ...