![](/image//Images/OutliningIndicators/None.gif)
< HTML >
![](/image//Images/OutliningIndicators/None.gif)
< HEAD >
![](/image//Images/OutliningIndicators/None.gif)
< TITLE ></ TITLE >
![](/image//Images/OutliningIndicators/None.gif)
![](/image//Images/OutliningIndicators/None.gif)
< script language = " javascript " >
![](/image//Images/OutliningIndicators/None.gif)
// /
![](/image//Images/OutliningIndicators/None.gif)
//
![](/image//Images/OutliningIndicators/None.gif)
// 功能:这个类使得被附加的表格可以支持行点击高亮
![](/image//Images/OutliningIndicators/None.gif)
// 参数:
![](/image//Images/OutliningIndicators/None.gif)
// tbl: 要附加样式的 table.
![](/image//Images/OutliningIndicators/None.gif)
// selectedRowIndex: 初始高亮的行的索引(从 0 开始). 此参数可省。
![](/image//Images/OutliningIndicators/None.gif)
// hilightColor: 高亮颜色。可省(默认为绿色)
![](/image//Images/OutliningIndicators/None.gif)
//
![](/image//Images/OutliningIndicators/None.gif)
// Author: Neil Chen
![](/image//Images/OutliningIndicators/None.gif)
// Date: 2005-09-05
![](/image//Images/OutliningIndicators/None.gif)
//
![](/image//Images/OutliningIndicators/None.gif)
// /
![](/image//Images/OutliningIndicators/None.gif)
function TableRowHilighter(tbl, selectedRowIndex, hilightColor) {
![](/image//Images/OutliningIndicators/None.gif)
this .currentRow = null ;
![](/image//Images/OutliningIndicators/None.gif)
this .hilightColor = hilightColor ? hilightColor : 'green';
![](/image//Images/OutliningIndicators/None.gif)
![](/image//Images/OutliningIndicators/None.gif)
if (selectedRowIndex != null
![](/image//Images/OutliningIndicators/None.gif)
&& selectedRowIndex >= 0
![](/image//Images/OutliningIndicators/None.gif)
&& selectedRowIndex < tbl.rows.length)
![](/image//Images/OutliningIndicators/None.gif)
{
![](/image//Images/OutliningIndicators/None.gif)
this .currentRow = tbl.rows[selectedRowIndex];
![](/image//Images/OutliningIndicators/None.gif)
tbl.rows[selectedRowIndex].runtimeStyle.backgroundColor = this .hilightColor;
![](/image//Images/OutliningIndicators/None.gif)
}
![](/image//Images/OutliningIndicators/None.gif)
![](/image//Images/OutliningIndicators/None.gif)
var _this = this ;
![](/image//Images/OutliningIndicators/None.gif)
tbl.attachEvent( " onclick " , table_onclick);
![](/image//Images/OutliningIndicators/None.gif)
![](/image//Images/OutliningIndicators/None.gif)
function table_onclick() {
![](/image//Images/OutliningIndicators/None.gif)
var e = event.srcElement;
![](/image//Images/OutliningIndicators/None.gif)
if (e.tagName == 'TD')
![](/image//Images/OutliningIndicators/None.gif)
e = e.parentElement;
![](/image//Images/OutliningIndicators/None.gif)
if (e.tagName != 'TR') return ;
![](/image//Images/OutliningIndicators/None.gif)
if (e == _this.currentRow) return ;
![](/image//Images/OutliningIndicators/None.gif)
if (_this.currentRow)
![](/image//Images/OutliningIndicators/None.gif)
_this.currentRow.runtimeStyle.backgroundColor = '';
![](/image//Images/OutliningIndicators/None.gif)
![](/image//Images/OutliningIndicators/None.gif)
e.runtimeStyle.backgroundColor = _this.hilightColor;
![](/image//Images/OutliningIndicators/None.gif)
_this.currentRow = e;
![](/image//Images/OutliningIndicators/None.gif)
}
![](/image//Images/OutliningIndicators/None.gif)
}
![](/image//Images/OutliningIndicators/None.gif)
![](/image//Images/OutliningIndicators/None.gif)
![](/image//Images/OutliningIndicators/None.gif)
</ script >
![](/image//Images/OutliningIndicators/None.gif)
![](/image//Images/OutliningIndicators/None.gif)
</ HEAD >
![](/image//Images/OutliningIndicators/None.gif)
< BODY >
![](/image//Images/OutliningIndicators/None.gif)
![](/image//Images/OutliningIndicators/None.gif)
< table id = " table1 " border = " 1 " cellspacing = " 0 " cellpadding = " 5 " >
![](/image//Images/OutliningIndicators/None.gif)
< tr >
![](/image//Images/OutliningIndicators/None.gif)
< td onclick = " alert('a'); " > a </ td >
![](/image//Images/OutliningIndicators/None.gif)
< td > b </ td >
![](/image//Images/OutliningIndicators/None.gif)
< td > c </ td >
![](/image//Images/OutliningIndicators/None.gif)
</ tr >
![](/image//Images/OutliningIndicators/None.gif)
< tr >
![](/image//Images/OutliningIndicators/None.gif)
< td > d </ td >
![](/image//Images/OutliningIndicators/None.gif)
< td > e </ td >
![](/image//Images/OutliningIndicators/None.gif)
< td > f </ td >
![](/image//Images/OutliningIndicators/None.gif)
</ tr >
![](/image//Images/OutliningIndicators/None.gif)
< tr >
![](/image//Images/OutliningIndicators/None.gif)
< td > g </ td >
![](/image//Images/OutliningIndicators/None.gif)
< td > h </ td >
![](/image//Images/OutliningIndicators/None.gif)
< td > i </ td >
![](/image//Images/OutliningIndicators/None.gif)
</ tr >
![](/image//Images/OutliningIndicators/None.gif)
</ table >
![](/image//Images/OutliningIndicators/None.gif)
![](/image//Images/OutliningIndicators/None.gif)
< br >
![](/image//Images/OutliningIndicators/None.gif)
< table id = " table2 " border = " 1 " cellspacing = " 0 " cellpadding = " 5 " >
![](/image//Images/OutliningIndicators/None.gif)
< tr >
![](/image//Images/OutliningIndicators/None.gif)
< td > a </ td >
![](/image//Images/OutliningIndicators/None.gif)
< td > b </ td >
![](/image//Images/OutliningIndicators/None.gif)
< td > c </ td >
![](/image//Images/OutliningIndicators/None.gif)
</ tr >
![](/image//Images/OutliningIndicators/None.gif)
< tr >
![](/image//Images/OutliningIndicators/None.gif)
< td > d </ td >
![](/image//Images/OutliningIndicators/None.gif)
< td > e </ td >
![](/image//Images/OutliningIndicators/None.gif)
< td > f </ td >
![](/image//Images/OutliningIndicators/None.gif)
</ tr >
![](/image//Images/OutliningIndicators/None.gif)
< tr >
![](/image//Images/OutliningIndicators/None.gif)
< td > g </ td >
![](/image//Images/OutliningIndicators/None.gif)
< td > h </ td >
![](/image//Images/OutliningIndicators/None.gif)
< td > i </ td >
![](/image//Images/OutliningIndicators/None.gif)
</ tr >
![](/image//Images/OutliningIndicators/None.gif)
</ table >
![](/image//Images/OutliningIndicators/None.gif)
![](/image//Images/OutliningIndicators/None.gif)
< br >
![](/image//Images/OutliningIndicators/None.gif)
< table id = " table3 " border = " 1 " cellspacing = " 0 " cellpadding = " 5 " >
![](/image//Images/OutliningIndicators/None.gif)
< tr >
![](/image//Images/OutliningIndicators/None.gif)
< td > a </ td >
![](/image//Images/OutliningIndicators/None.gif)
< td > b </ td >
![](/image//Images/OutliningIndicators/None.gif)
< td > c </ td >
![](/image//Images/OutliningIndicators/None.gif)
</ tr >
![](/image//Images/OutliningIndicators/None.gif)
< tr >
![](/image//Images/OutliningIndicators/None.gif)
< td > d </ td >
![](/image//Images/OutliningIndicators/None.gif)
< td > e </ td >
![](/image//Images/OutliningIndicators/None.gif)
< td > f </ td >
![](/image//Images/OutliningIndicators/None.gif)
</ tr >
![](/image//Images/OutliningIndicators/None.gif)
< tr >
![](/image//Images/OutliningIndicators/None.gif)
< td > g </ td >
![](/image//Images/OutliningIndicators/None.gif)
< td > h </ td >
![](/image//Images/OutliningIndicators/None.gif)
< td > i </ td >
![](/image//Images/OutliningIndicators/None.gif)
</ tr >
![](/image//Images/OutliningIndicators/None.gif)
</ table >
![](/image//Images/OutliningIndicators/None.gif)
![](/image//Images/OutliningIndicators/None.gif)
</ BODY >
![](/image//Images/OutliningIndicators/None.gif)
![](/image//Images/OutliningIndicators/None.gif)
< script >
![](/image//Images/OutliningIndicators/None.gif)
// 调用范例
![](/image//Images/OutliningIndicators/None.gif)
var hilighter1 = new TableRowHilighter(document.getElementById('table1'), 1 , 'yellow');
![](/image//Images/OutliningIndicators/None.gif)
var hilighter2 = new TableRowHilighter(document.getElementById('table2'), 0 , 'lightsteelblue');
![](/image//Images/OutliningIndicators/None.gif)
var hilighter3 = new TableRowHilighter(document.getElementById('table3'), 2 );
![](/image//Images/OutliningIndicators/None.gif)
</ script >
![](/image//Images/OutliningIndicators/None.gif)
![](/image//Images/OutliningIndicators/None.gif)
</ HTML >
![](/image//Images/OutliningIndicators/None.gif)
其中行点击的事件处理用的是 attachEvent 方法,因此不支持 IE 5.5 以下的浏览器,以及非 IE 浏览器。但有一个好处就是该高亮功能不影响 HTML 元素中原有的 onclick 事件处理逻辑。