Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如果标签为空,则显示一个div并隐藏另一个div_Javascript_Jquery_Html_Css - Fatal编程技术网

Javascript 如果标签为空,则显示一个div并隐藏另一个div

Javascript 如果标签为空,则显示一个div并隐藏另一个div,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我已经能够有效地显示一个div,如果标签是空的(通知用户没有找到internet连接),这就是我想要的 但是,如果标签为空,我还想隐藏#activateform 使用我当前的设置#activateform在函数运行时隐藏,即使填充了标签,但这不是我想要的。我尝试使用if语句(请参阅下面的代码块),但未能使其正常工作 这是我的html: <div class="form-group" style="display:none"> <label id="internet_ipa

我已经能够有效地显示一个div,如果标签是空的(通知用户没有找到internet连接),这就是我想要的

但是,如果标签为空,我还想隐藏
#activateform

使用我当前的设置
#activateform
在函数运行时隐藏,即使填充了标签,但这不是我想要的。我尝试使用if语句(请参阅下面的代码块),但未能使其正常工作

这是我的html:

<div class="form-group" style="display:none">
   <label id="internet_ipaddr" for="internet_ipaddr" class="tbh"></label>
   <h4> You don't seem to be connected to the internet </h4>
</div>

<div id="activateform"> This has to be hidden if label = empty </div>
只有当label=empty时,我才尝试将其设置为:

$(document).ready(function(){
  setTimeout(function(){
  if $("div.form-group label.tbh").empty() {
    $("#activateform").hide();
  }
},2000);

您可以使用方法和方法的组合

setTimeout(函数(){
var elem=$(“div.form-group label.tbh”);
if(元素为(':empty')){
elem.parent().hide();
$(“#activateform”).hide();
}否则{
elem.parent().show();
}
//代码的其余部分
}, 2000);

您似乎没有连接到internet
方法
empty()
不用于检查元素是否为空,而是用于删除其所有内容(即清空它)。要检查它是否为空,可以使用
is(':empty')
,类似于第一次尝试时使用的方法

注意:我不知道为什么您要使用
setTimeout
将其延迟2秒,但我保留了该代码

$(文档).ready(函数(){
setTimeout(函数(){
变量标签=$(“div.form-group label.tbh”);
如果($(“div.form-group label.tbh”)。为(':empty')){
label.parent().show();
$(“#activateform”).hide();
}
}, 2000);
});

您似乎没有连接到internet
如果label=empty
函数
empty()
从所选元素中删除所有内容,并且在删除所有内容后不返回布尔值,而是返回所选元素,则必须隐藏此项。因此,如果$(“div.form-group label.tbh”).empty(){
,您的条件将永远不会为true,因为label元素不是false

您可以使用
html()
函数,该函数返回元素的内容并将该值与空字符串进行比较,如下所示:

$(document).ready(function(){
    setTimeout(function(){
        if ($("div.form-group label.tbh").html() == "") {
            $("#activateform").hide();
        }
},2000);
参考:


谢谢,这样可以切换表单组,如果显示表单组,如何隐藏activateform div?
$(document).ready(function(){
    setTimeout(function(){
        if ($("div.form-group label.tbh").html() == "") {
            $("#activateform").hide();
        }
},2000);