手机
当前位置:查字典教程网 >编程开发 >Javascript教程 >javascript 对表格的行和列都能加亮显示
javascript 对表格的行和列都能加亮显示
摘要:1,交叉加亮2,点击左上角的"1;1","2;2"观察所有单元值的变化3,点击左上角的"3,3","4,4"观察所有单元字体的变化4,点击单...

1,交叉加亮

2,点击左上角的 "1;1","2;2"观察所有单元值的变化

3,点击左上角的 "3,3","4,4"观察所有单元字体的变化

4,点击单元后,该单元颜色发生变化,并直至点击下一单元

5,将th与td分开;

Gu Laicheng, 2008.12.25

<HTML>

<HEAD>

<TITLE>交叉高亮显示</TITLE>

<style>

body,th,td

{

font-size: 10pt;

}

.Tlist1

{

border-collapse:collapse;table-layout:fixed;width:710px;

}

.outit

{

background: #EEDDFF;

}

.ovrit

{

background: #AADDFF;

}

.cross

{

background: #33DDFF;

}

.clkit

{

background: #DDAAAA;

}

.clkcr

{

background: #AA7777;

}

.titl

{

background: #77AAFF;

}

</style>

</HEAD>

<BODY>

<table id="table3" border="1" cellpadding=4 cellspacing=0 bordercolor='#3377FF' align=center class=Tlist1 id=Tlist1>

<script>

var Nrow = 15,Ncol = 12;

document.writeln("<tr>");

for (var c=0;c<Ncol;c++ )

{

document.writeln("<th>F"+(c+1)+"</th>");

}

document.writeln("</tr>");

for (var r=0;r<Nrow;r++ )

{

document.writeln("<tr>");

for (var c=0;c<Ncol;c++ )

{

document.writeln("<td>"+(r+1)+";"+(c+1)+"</td>");

}

document.writeln("</tr>");

}

</script>

</table>

</BODY>

<script>

var currentRow,currentCol;

table3.rows[1].cells[0].onclick = function(){init(0);}

table3.rows[2].cells[1].onclick = function(){init(1);}

table3.rows[3].cells[2].onclick = function(){ccssty(0);}

table3.rows[4].cells[3].onclick = function(){ccssty(1);}

table3.rows[1].cells[0].style.cursor = "hand"

table3.rows[2].cells[1].style.cursor = "hand"

table3.rows[3].cells[2].style.cursor = "hand"

table3.rows[4].cells[3].style.cursor = "hand"

table3.onmouseover = new Function("var d='over'; moveit(d);");

table3.onmouseout = new Function("var d='out'; moveit(d);");

table3.onclick = clickit;

init(0);

function get_Element(the_ele,the_tag){

the_tag = the_tag.toLowerCase();

if(the_ele.tagName.toLowerCase()==the_tag)return the_ele;

while(the_ele=the_ele.offsetParent){

if(the_ele.tagName.toLowerCase()==the_tag)return the_ele;

}

return(null);

}

function setHorizontal(r,c,cn)

{

for (var i=0;i<table3.rows[r].cells.length ;i++)

{

table3.rows[r].cells[i].className = cn;

}

}

function setVertical(r,c,cn)

{

for (var i=1;i<table3.rows.length ;i++) // i starts from 0 because of TH

{

table3.rows[i].cells[c].className = cn;

}

}

function clickit(){

if (currentRow == 0)

{

return;

}

var cl = parseInt(clickl.innerText),

cc = parseInt(clickc.innerText);

if (cl+"" != "NaN" && cc+"" != "NaN") {

setVertical(currentRow,cc-1,"outit");

setHorizontal(cl,currentCol,"outit");

}

//Vertical Cells

setVertical(currentRow,currentCol-1,"clkit");

//Horizontal Cells

setHorizontal(currentRow,currentCol-1,"clkit");

//The color at the cross point

table3.rows[currentRow].cells[currentCol-1].className = "clkcr";

clickl.innerText = currentRow + "/"+Nrow

clickc.innerText = currentCol + "/"+Ncol

window.status = "Click on "+currentRow+","+currentCol;

}

function moveit(dir){

var the_obj = event.srcElement;

if(the_obj.tagName.toLowerCase() == "table") return;

if(the_obj.tagName.toLowerCase() == "th")

{

var the_td = get_Element(the_obj,"th");

} else

{

var the_td = get_Element(the_obj,"td");

}

var the_tr = the_td.parentElement;

currentRow = the_tr.rowIndex ;

currentCol = the_td.cellIndex+1 ;

//Vertical Cells

setVertical(currentRow,currentCol-1,(dir=="over")?"ovrit":"outit");

//Do not set horizontal cells when the cursor is on TH

if (currentRow>0)

{

//Horizontal Cells

setHorizontal(currentRow,currentCol-1,(dir=="over")?"ovrit":"outit");

//The color at the cross point

the_tr.cells[currentCol-1].className = (dir=="over")?"cross":"outit";

var cl = parseInt(clickl.innerText),

cc = parseInt(clickc.innerText);

if (cl+"" != "NaN" && cc+"" != "NaN") {

table3.rows[cl].cells[cc-1].className = "clkcr";

}

}

cline.innerText = currentRow + "/"+Nrow

ccell.innerText = currentCol + "/"+Ncol

}

function init(f){

var val = new Array();

var the_obj = event.srcElement;

var ii = jj = 0;

var the_table = get_Element(the_obj,"table");

ii = the_table.rows.length;

jj = the_table.rows[0].cells.length

for(i=1;i<ii;i++){

for(j=0;j<jj;j++){

the_table.rows[i].cells[j].innerText= (f==0)?(""+((i-1)*jj+j+1)):(""+i+";"+(j+1)) ;

}

}

}

function ccssty(flag){

var the_obj = event.srcElement;

var the_table = get_Element(the_obj,"table");

if(flag==0)

the_table.style.cssText = "PADDING-RIGHT: 0px; MARGIN-TOP: -3px; PADDING-LEFT: 0px; FONT-SIZE: 14px; MARGIN-BOTTOM: 2px; PADDING-BOTTOM: 2px; OVERFLOW: hidden; WIDTH: 710px; COLOR: blue; PADDING-TOP: 0px; FONT-FAMILY: 宋体; HEIGHT: 11px";

if(flag==1)

the_table.style.cssText = "PADDING-RIGHT: 0px; MARGIN-TOP: -3px; PADDING-LEFT: 0px; FONT-SIZE: 14px; MARGIN-BOTTOM: 2px; PADDING-BOTTOM: 2px; OVERFLOW: hidden; WIDTH: 710px; COLOR: #AAAA00; PADDING-TOP: 0px; FONT-FAMILY: 宋体; HEIGHT: 11px";

}

</script>

当前行:<span id=cline></span><br/>

当前列:<span id=ccell></span><br/>

点击行:<span id=clickl></span><br/>

点击列:<span id=clickc></span><br/>

</HTML>

【javascript 对表格的行和列都能加亮显示】相关文章:

javascript插件开发的一些感想和心得

javascript实现table表格隔行变色的方法

Javascript动态创建表格及删除行列的方法

javascript函数特点实例

JavaScript Date对象详解

Javascript类型转换的规则实例解析

Javascript中的Prototype到底是什么

javascript动态设置样式style实例分析

JavaScript实现广告的关闭与显示效果实例

javascript清空table表格的方法

精品推荐
分类导航