当前位置:asp编程网>技术教程>Javascript教程>  正文

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

2012-11-21 20:35:11   来源:www.aspbc.com    作者:wangsdong   浏览量:2887   收藏

问题是这样的:一个表格中(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" onClick="f()" 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" onClick="f()" 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三个浏览器中试试,是不是都正常了



关于我们-广告合作-联系我们-积分规则-网站地图

Copyright(C)2013-2017版权所属asp编程网