提供一个思路-----------------------
<table id="o" border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse" width="80">
<tr>
<td> a</td>
</tr>
<tr>
<td> b</td>
</tr>
<tr>
<td> c</td>
</tr>
<tr>
<td> d</td>
</tr>
</table><script language="javascript">
<!--
var oIndex = 0;
o.focus();
o.onkeydown = function()
{
if(event.keyCode == 40 && oIndex != o.firstChild.childNodes.length)
{
doSelect(oIndex);
if(oIndex != 0)delSelect(oIndex);
oIndex++;
}
else if(event.keyCode == 38 && oIndex > 1)
{
doSelect(oIndex - 2);
delSelect(oIndex);
oIndex--;
}
}function doSelect(index)
{
o.firstChild.childNodes(index).bgColor = "red";
}
function delSelect(index)
{
o.firstChild.childNodes(index - 1).bgColor = "transparent";
}
//-->
</script>
<table id="o" border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse" width="80">
<tr>
<td> a</td>
</tr>
<tr>
<td> b</td>
</tr>
<tr>
<td> c</td>
</tr>
<tr>
<td> d</td>
</tr>
</table><script language="javascript">
<!--
var oIndex = 0;
o.focus();
o.onkeydown = function()
{
if(event.keyCode == 40 && oIndex != o.firstChild.childNodes.length)
{
doSelect(oIndex);
if(oIndex != 0)delSelect(oIndex);
oIndex++;
}
else if(event.keyCode == 38 && oIndex > 1)
{
doSelect(oIndex - 2);
delSelect(oIndex);
oIndex--;
}
}function doSelect(index)
{
o.firstChild.childNodes(index).bgColor = "red";
}
function delSelect(index)
{
o.firstChild.childNodes(index - 1).bgColor = "transparent";
}
//-->
</script>
<tr>
<td> a</td>
</tr>
<tr>
<td> b</td>
</tr>
<tr>
<td> c</td>
</tr>
<tr>
<td> d</td>
</tr>
</table>
<div id="div0" style="position:absolute;border:1px solid red;height:100;width:80; left:85px; top:22px;display:none">1</div>
<div id="div1" style="position:absolute;border:1px solid red;height:100;width:80; left:85px; top:38px;display:none">2</div>
<div id="div2" style="position:absolute;border:1px solid red;height:100;width:80; left:85px; top:57px;display:none">3</div>
<div id="div3" style="position:absolute;border:1px solid red;height:100;width:80; left:84px; top:73px;display:none">4</div>
<script language="javascript">
<!--
var oIndex = 0;
o.focus();
var oLast = null;
o.onkeydown = function()
{
if(event.keyCode == 40 && oIndex != o.firstChild.childNodes.length)
{
doSelect(oIndex);
if(oIndex != 0)delSelect(oIndex);
oIndex++;
}
else if(event.keyCode == 38 && oIndex > 1)
{
doSelect(oIndex - 2);
delSelect(oIndex);
oIndex--;
}
else if(event.keyCode == 39 && oIndex > 0)
{
if(oLast != null)oLast.style.display = "none";
eval("div"+(oIndex - 1)).style.display="";
oLast = eval("div"+(oIndex -1));
}
}function doSelect(index)
{
o.firstChild.childNodes(index).bgColor = "red";
}
function delSelect(index)
{
o.firstChild.childNodes(index - 1).bgColor = "transparent";
}
//-->
</script>