<!DOCTYPE HTML PUBLIC "-//W<chmetcnv unitname="C" sourcevalue="3" hasspace="False" negative="False" numbertype="1" tcsc="0" w:st="on">3C</chmetcnv>//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<SCRIPT LANGUAGE="JavaScript">
<!--
var
i =1;
function
change()
{
var dd = 'tr'+i;
document.all(dd).style.display="none";
i ++;
}
var j =1 ;
function
changeadd()
{
var dd = 'tr'+ j ;
document.all(dd).style.display="block";
j ++;
}
//-->
</SCRIPT>
</HEAD>
<BODY>
<TABLE border="1">
<TR id ="tr1">
<TD>w</TD>
<TD>w</TD>
<TD>w</TD>
<TD>w</TD>
<TD>w</TD>
</TR>
<TR id ="tr2">
<TD>s</TD>
<TD>d</TD>
<TD>d</TD>
<TD>d</TD>
<TD>d</TD>
</TR>
<TR id ="tr3">
<TD>333</TD>
<TD>33</TD>
<TD>3</TD>
<TD>3</TD>
<TD>3</TD>
</TR>
<TR id ="tr4">
<TD>55</TD>
<TD>5</TD>
<TD>5</TD>
<TD>5</TD>
<TD>555</TD>
</TR>
</TABLE>
<BUTTON
onclick="change();"> 去除一行</BUTTON>
<BUTTON
onclick="changeadd();"> 增加一行 </BUTTON>
</BODY>
</HTML>
以上代码在ie中正常,但是在FireFox和Safari中就会出错。
问题: 在Firefox中执行后"display:none;"没有回收"display:block;"开辟的页面空间, 下次再执行"display:block;"又会在页面上重新创建显示空间。 原因:
The reason it "appears" to work with IE is probably because IE is
error-correcting the display property for you.As
others have implied,
IE has no concept of the table-row value. In fact,Microsoft's documentation
(<URL:http://msdn.microsoft.com/workshop/author/dhtml/reference/properties/display.asp>)
clearly states that all block-like elements (with a few exceptions) have
'block' as their display value, contrary to
specification. 解决: 将代码
style.display="block"; 修改为
style.display="";