jquery div hide在第一次加载时没有工作

时间:2016-11-30 15:10:44

标签: javascript jquery html css

我正在使用远程javascripts填充我网站上的两个div。

<div id="flix-inpage"></div>

<div id="ccs-inline-content"></div>

如果内容在两个div上都可用,我使用以下代码只显示一个div。我已将此代码添加到页面底部:

$(document).ready(function(){
    setTimeout(function() {
        if ($("#flix-inpage #inpage_responsive").length > 0) {
            $("#ccs-inline-content").hide();
        } else {
            $("#ccs-inline-content").show();
            return false;
        }
    }, 2000);
});

我已经指定了一个css类:

#ccs-inline-content{
    display: none;
}   

如果两个DIV都有相同的内容

我遇到的问题是#ccs-inline-content在第一次加载时没有隐藏。如果我重新加载页面几次,则#ccs-inline-content - hide()会启动,否则内容就会显示。

我尝试过不同的浏览器但结果相同。

2 个答案:

答案 0 :(得分:0)

我测试了这段代码,但工作得很好。我只需在此代码中添加.text()函数

$(document).ready(function(){
    setTimeout(function() {
        if ($("#flix-inpage").text().length <= 0 ) {
             $("#ccs-inline-content").show();
        } else {
             $("#ccs-inline-content").hide();
        }
    }, 2000);
});
#ccs-inline-content{
display: none;
}  
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>


<div id="flix-inpage">12</div>

<div id="ccs-inline-content">ok</div>

答案 1 :(得分:0)

如果我理解正确,您希望显示#flix-inpage并隐藏#ccs-inline-content,除非#flix-inpage为空。这样就可以了:

$(document).ready(function() {
  if ($("#flix-inpage").children().length) {
    $("#ccs-inline-content").hide();
  } else {
    $("#ccs-inline-content").show();
  }
});

你需要确保你提到的其他脚本在运行之前完成,所以在执行另外两个脚本后,将它放在<body>标记的底部。