`
zhangyi6678
  • 浏览: 76271 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

当鼠标滑过表格时,表格的行会高亮显示,鼠标离开颜色复原,如果鼠标点击,点击行会保存为红色不变

阅读更多

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>JavaScript动态高亮显示表格中的行 - 分享JavaScript-sharejs.com</title>
<style type="text/css">

body{
   font-size:0.8em;
   font-family: Trebuchet MS, Lucida Sans Unicode, Arial, sans-serif;
   margin:0px;
   padding:0px;
}
img{
   border:0px;
}
thead td{
   font-weight:bold;
   color:#000;
   background-color:#E2EBED;
}
td{
   padding:2px;
}
table{
   border:1px solid #000;
   border-collapse: collapse;
}
h1{
   font-size:1.3em;
   margin-bottom:0px;
}
table,h1,p,#ads{
   margin-left:10px;
}
#ads{
   margin-top:20px;
}

/* These classes are used by the script as rollover effect for table 1 and 2 */

.tableRollOverEffect1{
   background-color:#317082;
   color:#FFF;
}

.tableRollOverEffect2{
   background-color:#000;
   color:#FFF;
}

.tableRowClickEffect1{
   background-color:#F00;
   color:#FFF;
}
.tableRowClickEffect2{
   background-color:#00F;
   color:#FFF;
}

</style>
<script type="text/javascript">
/************************************************************************************************************
(C) www.dhtmlgoodies.com, November 2005

This is a script from www.dhtmlgoodies.com. You will find this and a lot of other scripts at our website.

Terms of use:
You are free to use this script as long as the copyright message is kept intact. However, you may not
redistribute, sell or repost it without our permission.

Thank you!

www.dhtmlgoodies.com
Alf Magne Kalleland

************************************************************************************************************/
var arrayOfRolloverClasses = new Array();
var arrayOfClickClasses = new Array();
var activeRow = false;
var activeRowClickArray = new Array();

function highlightTableRow()
{
   var tableObj = this.parentNode;
   if(tableObj.tagName!='TABLE')tableObj = tableObj.parentNode;

   if(this!=activeRow){
    this.setAttribute('origCl',this.className);
    this.origCl = this.className;
   }
   this.className = arrayOfRolloverClasses[tableObj.id];
  
   activeRow = this;
  
}

function clickOnTableRow()
{
   var tableObj = this.parentNode;
   if(tableObj.tagName!='TABLE')tableObj = tableObj.parentNode;  
  
   if(activeRowClickArray[tableObj.id] && this!=activeRowClickArray[tableObj.id]){
    activeRowClickArray[tableObj.id].className='';
   }
   this.className = arrayOfClickClasses[tableObj.id];
  
   activeRowClickArray[tableObj.id] = this;
    
}

function resetRowStyle()
{
   var tableObj = this.parentNode;
   if(tableObj.tagName!='TABLE')tableObj = tableObj.parentNode;

   if(activeRowClickArray[tableObj.id] && this==activeRowClickArray[tableObj.id]){
    this.className = arrayOfClickClasses[tableObj.id];
    return;
   }
  
   var origCl = this.getAttribute('origCl');
   if(!origCl)origCl = this.origCl;
   this.className=origCl;
  
}
  
function addTableRolloverEffect(tableId,whichClass,whichClassOnClick)
{
   arrayOfRolloverClasses[tableId] = whichClass;
   arrayOfClickClasses[tableId] = whichClassOnClick;
  
   var tableObj = document.getElementById(tableId);
   var tBody = tableObj.getElementsByTagName('TBODY');
   if(tBody){
    var rows = tBody[0].getElementsByTagName('TR');
   }else{
    var rows = tableObj.getElementsByTagName('TR');
   }
   for(var no=0;no<rows.length;no++){
    rows[no].onmouseover = highlightTableRow;
    rows[no].onmouseout = resetRowStyle;
   
    if(whichClassOnClick){
     rows[no].onclick = clickOnTableRow;
    }
   }
  
}
</script>

</head>
<body>
<h1>Table example 1</h1>
<table id="myTable">
<thead>
   <tr>
    <td>Name</td>
    <td>Age</td>
    <td>Position</td>
    <td>Income</td>
    <td>Gender</td>
   </tr>
</thead>
<tbody>
   <tr>
    <td>John</td>
    <td>37</td>
    <td>Managing director</td>
    <td>90.000</td>
    <td>Male</td>
   </tr>
   <tr>
    <td>Susan</td>
    <td>34</td>
    <td>Partner</td>
    <td>90.000</td>
    <td>Female</td>
   </tr>
   <tr>
    <td>David</td>
    <td>29</td>
    <td>Head of production</td>
    <td>70.000</td>
    <td>Male</td>
   </tr>
   <tr>
    <td>Laura</td>
    <td>29</td>
    <td>Head of marketing</td>
    <td>70.000</td>
    <td>Female</td>
   </tr>
   <tr>
    <td>Kate</td>
    <td>18</td>
    <td>Marketing</td>
    <td>50.000</td>
    <td>Female</td>
   </tr>
   <tr>
    <td>Mona</td>
    <td>21</td>
    <td>Marketing</td>
    <td>53.000</td>
    <td>Female</td>
   </tr>
   <tr>
    <td>Mike</td>
    <td>21</td>
    <td>Marketing</td>
    <td>53.000</td>
    <td>Male</td>
   </tr>
   <tr>
    <td>Mark</td>
    <td>25</td>
    <td>Production</td>
    <td>52.000</td>
    <td>Male</td>
   </tr>
</tbody>
</table>

<h1>Table example 2</h1>
<table id="myTable2">
<thead>
   <tr>
    <td>Name</td>
    <td>Age</td>
    <td>Position</td>
    <td>Income</td>
    <td>Gender</td>
   </tr>
</thead>
<tbody>
   <tr>
    <td>Peter</td>
    <td>33</td>
    <td>Production</td>
    <td>55.000</td>
    <td>Male</td>
   </tr>
   <tr>
    <td>Jennifer</td>
    <td>24</td>
    <td>Production</td>
    <td>49.000</td>
    <td>Female</td>
   </tr>
   <tr>
    <td>David</td>
    <td>25</td>
    <td>Photography</td>
    <td>51.000</td>
    <td>Male</td>
   </tr>
   <tr>
    <td>Anna</td>
    <td>42</td>
    <td>Head of photography</td>
    <td>56.000</td>
    <td>Female</td>
   </tr>
   <tr>
    <td>Rita</td>
    <td>30</td>
    <td>Photography</td>
    <td>54.000</td>
    <td>Female</td>
   </tr>
   <tr>
    <td>Magnus</td>
    <td>25</td>
    <td>Freelancer</td>
    <td>65.000</td>
    <td>Male</td>
   </tr>
   <tr>
    <td>Johnny</td>
    <td>29</td>
    <td>Freelancer</td>
    <td>63.000</td>
    <td>Male</td>
   </tr>
</tbody>
</table>

<script type="text/javascript">
addTableRolloverEffect('myTable','tableRollOverEffect1','tableRowClickEffect1');
addTableRolloverEffect('myTable2','tableRollOverEffect2','tableRowClickEffect2');
</script>


<br><br>
<div align="center">
获取更多JavaScript代码,请登录JavaScript分享网 <a href="http://www.sharejs.com">http://www.sharejs.com</a>
</div>
</body>
</html>

分享到:
评论

相关推荐

    JavaScript多行文本一行显示,点击可显示单元格全部内容的Table

    【引子】在开发的过程中,表格Table有个缺陷,如果一行中某个单元格的超过一行,表格就不够美观了。下面的代码解决了这个问题:当表格被载入的时候,TD的宽度是原定的长 度,不会撑开TD,也不会影响其他TD,点击某...

    ReoGrid表格控件 v0.8.5.zip

    支持单元格合并,边框样式,图案背景颜色,数据格式,冻结,公式,宏和脚本执行,表格事件等。   ReoGrid表格控件 0.8.5 更新日志: 新功能:组及大纲 新功能:内置单元格类型 新功能:自定义单元格 新增...

    基于Qt(C++)实现(PC)学生信息管理系统【100010043】

    1、新建文件,将会产生一个全新的表格,在新建时,当前表格的内容将会被删除,系统会自动检测是否已经被保存过,如未保存会提示;否则将直接生成新表格。 2、打开文件,系统可以打开由系统保存的.csv文件。 3、保存...

    HTML 自动伸缩的表格Table js实现

    下面的代码解决了这个问题:当表格被载入的时候,TD的宽度是原定的长度,不会撑开TD,也不会影响其他TD,点击某行会按照本行所有单元格中行数最多的单元格的长度伸长行高。用户体验很好。【优点】 1、对开发人员指定...

    以下是涉及到插入表格的查询的5种改进方法:

    当客户使用插入延迟,服务器立刻返回,如果表没有被其他线程调用,则行会列队等待被插入。使用插入延迟的另一个好处就是从多个客户插入的情况会被绑定并记录在同一个block中。这将比处理多个独立的插入要快得多。 ...

    Android 模拟ListView列表界面滑动选择删除功能【源码】.rar

    Android 模拟用户列表界面,ListView列表信息的滑动删除和选择删除功能,这个功能在...注:更新界面时,记录为 未选中和滑动删除按钮不可见,可见时,再次单击设置不可见,当滑动距离大于40时,显示该位置的删除按键。

    使表格正文可以滚动.rar

    使表格正文可以滚动 比如数据比较多时,如数据列表,数据头保持不动,但数据行会滚动

    JS数据表格分页控件 1.0

    在网页开发中, 常常需要一个表格与列表相结合的控件, 即能像表格(table)一样显示丰富的信息, 又能像列表选择控件(select)一样方便地选择数据. 在桌面应用程序开发中, 许多GUI库都提供了类似的控件, 如.Net的ListView...

    传奇个性行会名字_工会名字完整版.doc

    传奇个性行会名字_工会名字完整版.doc

    EditPlus 3.31 Build 860 简体中文版

    * 修正: 当 "另存为"、并在文件名称输入框点击鼠标右键时, 弹出英文菜单的问题 (详见下) [0427] * 修正: 参数设置素材目录一处翻译错误 [0315] * 修正: '首选项'-&gt;'常规' 的 '使用 TR1 正则表达式' 选项显示位置不...

    EditPlus 3.31 Build 1129

    * 修正: 当 "另存为"、并在文件名称输入框点击鼠标右键时, 弹出英文菜单的问题 (详见下) [0427] * 修正: 参数设置素材目录一处翻译错误 [0315] * 修正: '首选项'-&gt;'常规' 的 '使用 TR1 正则表达式' 选项显示位置不...

    guild-profile:打开行会档案模式,为您提供有关行会的各种信息

    公会简介打开一个公会配置文件模式,为您提供有关公会的各种信息。支持服务器(新) 在插件方面需要帮助吗? 随意放入并寻求帮助!预习安装您可能会完全不知所措,学习如何安装这个坏男孩,对吗? 真的很简单! 只需...

    java期末考试试题(3)

    一、 选择 1.给定下面的代码片段:  1) String str = null;  2) if ((str != null) && (str.length() ...若"Button1"的功能是:点击后弹出一个用于输入的界面,获取用户想要显示的图像文件名,则该界面最好····

    合并table的行

    合并table的行,相同项的行会自动合并

    eas供应链dep案例集

    比价单中对单价为0或者为空的行用红色背景色表示 0.2 单据操作控制修改 EASSCMA1P0048 应收单的付款方式字段修改显示为收款方式 新增应收单时,发现应收单的【收款方式】字段显示为【付款方式】 修改应收单付款方式...

    applem2_20120610苹果引擎配套工具,内有登陆器配置

    ) 时间 变量1(保存已用时间) 变量2(保存剩余时间) 到期是否删除(清理) 计算类型(默认为天,可选填 年,周,月,时,分) 3、修正快捷栏双击使用物品不灵敏问题 4、修正游戏内打开充值页面无法连接问题 5、更新道士技能...

    行会大师

    行会大师

    gmix.net_1.76黄金复古合击版.rar

    0为关,1为开 G302 新手行会开关 ;0为关,1为开 G350 盟重土城开关 ;0为关,1为开 G351 封魔谷开关 ;0为关,1为开 G352 白日门开关 ;0为关,1为开 G353 六大重装开关 ;0为关,1为开 G354 苍月岛开关 ;0为关,1为开 ...

Global site tag (gtag.js) - Google Analytics