首页新闻找找看学习计划

JS判断是否隐藏 谷歌浏览器

0
[已解决问题] 解决于 2013-05-16 14:35

页面上的显示隐藏是这么写的:

$("#table_tj").show();

$("#table_tj").hide();

判断方式是这样的:

判断是否显示:$("#table_tj").is(":visible");

判断是否隐藏:$("#table_tj").is(":hidden");

在IE里判断是正确的,可是用谷歌浏览器判断就不对,同样设置了显示属性:

$("#table_tj").show();当我调试的时候$("#table_tj").is(":visible")的值却是false

请问我怎么做才能获取正确呢

淘@淘的主页 淘@淘 | 小虾三级 | 园豆:582
提问于:2013-05-16 10:02
< >
分享
最佳答案
0

alert($("#table_tj").css("display")==="block"));

alert($("#table_tj").css("display")==="none"));

奖励园豆:5
Eric.luo | 小虾三级 |园豆:834 | 2013-05-16 10:20

为什么我用谷歌调试这两个值都是false呢

淘@淘 | 园豆:582 (小虾三级) | 2013-05-16 12:09

$("#table_tj").show();
alert($("#table_tj").css("display")==="block");

我这么写它弹出的是false,不是应该是true吗?

淘@淘 | 园豆:582 (小虾三级) | 2013-05-16 13:16

@淘@淘: $("#table_tj").css("display","none");//隐藏

$("#table_tj").css("display","block");//显示

Eric.luo | 园豆:834 (小虾三级) | 2013-05-16 13:20

@淘@淘: 直接把关键代码贴出来吧,看看什么情况。

Eric.luo | 园豆:834 (小虾三级) | 2013-05-16 13:21

@BERWOLF: 我页面上用的是span:

<span id="table_tj" style="display: none;" width="100%" border="1px"></span>

span里的内容是动态向里边写入的Table,如下的js:

function scinput(tj) {
            if (tj == null || tj == "") {
                $("#table_tj").hide();
                //$("#table_tj").is(":hidden") = true;
                alert($("#table_tj").css("display") === "none");//true
            }
            else {
                $("#table_tj").show();
                //$("#table_tj").is(":visible") = true;
                alert($("#table_tj").css("display")==="block");//ture

                


                //生成input begin
                ch = new Array;
                ch = tj.split(",");
                var size = ch.length;
                var table_tj = document.getElementById("table_tj");
                var txt = "";
                var td = "";
                for (var i = 0; i < size; i++) {
                    if (ch[i] != "" && ch[i] != null) {
                        td = td + "<td width='8%' align='right'>" + ch[i].split("[")[0] + ":" + "</td><td width='17%' align='left'><lable id='" + ch[i].match(/[^\[]+(?=\])/g)[0] + "' name='tdname' style='display: block;' >" + ch[i].match(/[^\[]+(?=\])/g)[0] + "</lable>" + "</td>";
                        if ((i + 1) % 4 == 0) {
                            txt = txt + "<tr>" + td + "</tr>";
                            td = "";
                        }
                        table_tj.innerHTML = "<TABLE><TBODY>" + txt + "</TBODY></TABLE>";
                    }
                }
                txt = txt + "<tr>" + td + "</tr>";
                table_tj.innerHTML = "<fieldset style='margin:0 10 1em 10;'><legend>报表信息</legend><TABLE id='table_tj2' width='90%' align='center' border='0' cellspacing='0' cellpadding='0'><TBODY>" + txt + "</TBODY></TABLE></fieldset>";
                //生成input end
            }
        }

按理说弹窗都应该是true,可是现在alert($("#table_tj").css("display")==="block");弹的是false,
我很纳闷

淘@淘 | 园豆:582 (小虾三级) | 2013-05-16 13:33

@淘@淘: 

 alert($("#table_tj").css("display"));

试一下
Eric.luo | 园豆:834 (小虾三级) | 2013-05-16 13:45

@BERWOLF: 一个弹的是none;一个弹的是inline

淘@淘 | 园豆:582 (小虾三级) | 2013-05-16 13:51

@淘@淘: 笑了。

Eric.luo | 园豆:834 (小虾三级) | 2013-05-16 13:57

@淘@淘: 你的样式在作怪;权宜之计:

 alert($("#table_tj").css("display")==="inline");
Eric.luo | 园豆:834 (小虾三级) | 2013-05-16 13:59

@BERWOLF:呃 (⊙o⊙)…

淘@淘 | 园豆:582 (小虾三级) | 2013-05-16 14:16
其他回答(3)
0

$("#table_tj").show()   hide() 只对 $("#table_tj").is(":hidden") 有效吧

芒果の冰 | 园豆:187 (初学一级) | 2013-05-16 10:06

还是不行,我这块谷歌跟IE就是不一样的

支持(0) 反对(0) 淘@淘 | 园豆:582 (小虾三级) | 2013-05-16 10:17

$("#table_tj").is(":hidden")==true   div已隐藏

$("#table_tj").is(":visible")==true    div已被其他容器覆盖  肉眼看不到

支持(0) 反对(0) 芒果の冰 | 园豆:187 (初学一级) | 2013-05-16 10:18

@淘@淘: 用DIV试试

支持(0) 反对(0) 芒果の冰 | 园豆:187 (初学一级) | 2013-05-16 13:05

@芒果の冰: 像你说的我把我的代码都换成div了,IE里勉强还算可以,可是谷歌里样式还是不行,不过二楼给我的弹窗倒是弹的对

if (tj == null || tj == "") {
                $("#table_tj").hide();
                //$("#table_tj").is(":hidden") = true;
                alert($("#table_tj").css("display") === "none"); //true
            }
            else {
                $("#table_tj").show();
                //$("#table_tj").is(":visible") = true;
                alert($("#table_tj").css("display") === "block"); //ture
         }

都是弹的true;就是样式还是不对呢

支持(0) 反对(0) 淘@淘 | 园豆:582 (小虾三级) | 2013-05-16 13:43

@淘@淘: 放弃判断隐藏还是显示

定义一个变量在if上面  var num=0;

如果

if(tj == null || tj == ""){}else{num= 要减的高度;}
然后在下面直接减
支持(0) 反对(0) 芒果の冰 | 园豆:187 (初学一级) | 2013-05-16 14:07

@芒果の冰: 呃,那好吧,我现在只把“tj”那个换成div了,然后用这个判断的:

$("#table_tj").css("display")==="block"

勉强可以实现

支持(0) 反对(0) 淘@淘 | 园豆:582 (小虾三级) | 2013-05-16 14:18

@淘@淘: 不知道其他浏览器会不会报错,哎。。。

支持(0) 反对(0) 淘@淘 | 园豆:582 (小虾三级) | 2013-05-16 14:19
0

二楼正解

jerry-Tom | 园豆:4077 (老鸟四级) | 2013-05-16 10:48
0

嗯嗯,目测二楼可行(没有试)

W宁宁 | 园豆:522 (小虾三级) | 2013-05-16 10:51
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册