表格TR异常
在系统中有一表格,有隐藏 TR的操作,但发现行显示异常。后浓缩为以下程序,发现的确与TR的隐藏有关。
具体表现在,当先点击第一行,隐藏了某些行后,再点击最后一行,本应相应的行颜色变化,但现在却是在行的顶部留有一细长条,其颜色没有变化。(我用的IE8.0版本),疑为IE8.0的BUG.不知哪位高手有何建议能够解决这个问题。谢谢了。
<html xmlns="http://www.w3.org/1999/xhtml" >
<head >
<title>TABLE TR</title>
</head>
<body>
<table id="tab" border=1 width=200>
<tr id="trMain1" onclick="hidden()"><td>a [click me first.]</td></tr>
<tr id="trSub1"><td>b</td></tr>
<tr id="trSub2"><td>c</td></tr>
<tr id="trMain2"><td>d</td></tr>
<tr id="trMain3" onclick="this.style.backgroundColor='#7DD6F0'"><td>e</td></tr>
<tr id="trMain4" onclick="this.style.backgroundColor='#7DD6F0'"><td>f</td></tr>
<tr id="trSub3" onclick="this.style.backgroundColor='#7DD6F0'"><td>g</td></tr>
<tr id="trSub4" onclick="this.style.backgroundColor='#7DD6F0'"><td>h [click me second.]</td></tr>
</table>
</body>
</html>
<script>
var hs=false;
function hidden()
{
var c = (hs)?("block"):("none");
document.getElementById("trMain2").style.display = c;
document.getElementById("trMain3").style.display = c;
document.getElementById("trMain4").style.display = c;
hs = !hs;
}
</script>
还有不能加 cellpadding="3" cellspacing="1" 属性在table中;
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>TABLE TR</title>
<script>
var hs = false;
//hidden是保留字,在Chrome等浏览器中会报错
function tr_hidden() {
(hs) ? (c = "table-row") : (c = "none"); //正常的表格行display属性值应为table-row
document.getElementById("trMain2").style.display = c;
document.getElementById("trMain3").style.display = c;
document.getElementById("trMain4").style.display = c;
hs = !hs;
}
</script>
</head>
<body>
<table id="tab" border="1" width="200" style="border-collapse:collapse;">
<tr id="trMain1" onclick="tr_hidden()"><td>a [click me first.]</td></tr>
<tr id="trSub1"><td>b</td></tr>
<tr id="trSub2"><td>c</td></tr>
<tr id="trMain2"><td>d</td></tr>
<tr id="trMain3" onclick="this.style.backgroundPosition='bottom right';this.style.backgroundColor='#7DD6F0'"><td>e</td></tr>
<tr id="trMain4" onclick="this.style.backgroundColor='#7DD6F0'"><td>f</td></tr>
<tr id="trSub3" onclick="this.style.backgroundColor='#7DD6F0'"><td>g</td></tr>
<tr id="trSub4" onclick="this.style.backgroundColor='#7DD6F0'"><td>h [click me second.]</td></tr>
</table>
</body>
</html>
非深感T5500的答复。在我的应用中试后发现还不行,后来将cellpadding="3" cellspacing="1"属性取掉后,一切正常。长期困扰的问题解决了。再次感谢。
谷来成 2012.3.26