当前位置:K88软件开发文章中心编程语言JavaScriptJS01 → 文章内容

解决火狐中tr的display属性的方法

减小字体 增大字体 作者:wangsdong     来源:asp编程网  发布时间:2018-12-30 8:58:57

问题是这样的:一个表格中(N行2列)的某一行先初始化的时候,这行使用了display:none隐藏了,然后通过某个事件,把显示出来。

看起来是个很容易的js,先给tr设置一个ID,然后使用document.getElementById("ID").style.display="block"
就可以了。可这句在IE中是正常的,一点问题都没有。可把这个放到FF中,效果就不一样了。见下面的代码:

<
table width="450" border="1" cellspacing="0" cellpadding="0">
<
tr>
<
td>
&
nbsp
百度<
/td>
<
td>
&
nbsp
csdn<
/td>
<
/tr>
<
tr id="ID" style="display:none
">
<
td>
&
nbsp
站长网<
/td>
<
td>
&
nbsp
asp编程网<
/td>
<
/tr>
<
tr>
<
td>
&
nbsp
新浪<
/td>
<
td>
&
nbsp
google<
/td>
<
/tr>
<
/table>
<
input type="button" value="显示" />
<
script type="text/javascript">
function f()
{document.getElementById("ID").style.display="block"
}<
/script>
(鼠标移到代码上去,在代码的顶部会出现四个图标,第一个是查看源代码,第二个是复制代码,第三个是打印代码,第四个是帮助)

分别在IE、FF和Chrome中测试一下以上的代码,点击里面的显示按纽看看效果,两个明显不一样的效果

 

原因:这是两个不同的浏览器引起的

 

解决方法:要先判断是哪种浏览器,然后给display赋值不同的属性,IE中display赋值为block就可以了,FF和chrome中需要给display赋值为table-row。代码如下:

<
table width="450" border="1" cellspacing="0" cellpadding="0">
<
tr>
<
td>
&
nbsp
百度<
/td>
<
td>
&
nbsp
csdn<
/td>
<
/tr>
<
tr id="ID" style="display:none
">
<
td>
&
nbsp
站长网<
/td>
<
td>
&
nbsp
asp编程网<
/td>
<
/tr>
<
tr>
<
td>
&
nbsp
新浪<
/td>
<
td>
&
nbsp
google<
/td>
<
/tr>
<
/table>
<
input type="button" value="显示" />
<
script type="text/javascript">
var BrowseType=""
if(getbrowse()=="MSIE")
{BrowseType="block"
}else
{BrowseType="table-row"
}function f()
{document.getElementById("ID").style.display=BrowseType
}function getbrowse()
{ //判断当前浏览器是何种浏览器var str=""
// 包含「Opera」文字列 Agent=navigator.userAgent
if(Agent.indexOf("Opera") != -1)
{ str='Opera'
} // 包含「MSIE」文字列 else if(Agent.indexOf("MSIE") != -1)
{ str='MSIE'
} // 包含「Firefox」文字列 else if(Agent.indexOf("Firefox") != -1)
{ str='Firefox'
} // 包含「Netscape」文字列 else if(Agent.indexOf("Netscape") != -1)
{ str='Netscape'
} // 包含「Safari」文字列 else if(Agent.indexOf("Safari") != -1)
{ str='Safari'
} else
{ } return str
}<
/script>
(鼠标移到代码上去,在代码的顶部会出现四个图标,第一个是查看源代码,第二个是复制代码,第三个是打印代码,第四个是帮助)

这样就解决了。

再去IE、FF和Chrome三个浏览器中试试,是不是都正常了



解决火狐中tr的display属性的方法