如果div为空,则隐藏按钮

时间:2015-04-02 22:44:56

标签: javascript jquery html

当div空了没有运气时,我一直试图隐藏按钮,为什么div是空的?因为通过后端wordpress我在其中插入一个短代码。

这是代码:

<head>
<script src="jquery-1.11.2.min.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>

<script>
$(document).ready(function() { if ( $(".whatever").parents("#content").length == 1 ){ 
 $('input#bt23').show();
}else { $('input#bt23').hide();

});
</script>
</head>
<body>
<div id="content">
///empty
</div>
<input type="button" id="bt23" class="bt23"  name="Button1" value="720p" /></body>

那几乎就是这样,如果没有其他内部人员#Content,任何想法,试图让按钮消失?


我只是注意到,也许只是div可能不是空的,看起来它是空的但我认为充满了空间。

所以不是比较空和填充,如何比较填充文本和里面的特定div?


像这样:

<div class="content">
<div style="whatever">
<div class="video-wrapper" style="padding-bottom:56.2222222222%;">

3 个答案:

答案 0 :(得分:1)

检查texthtml

没有内容

&#13;
&#13;
$(document).ready(function() { 
  if ( $("#content").text() ){ 
    $('input#bt23').show();
  } else { 
    $('input#bt23').hide();
  }
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="content"></div>
<input type="button" id="bt23" class="bt23"  name="Button1" value="720p" />
&#13;
&#13;
&#13;


内容

&#13;
&#13;
$(document).ready(function() { 
  if ( $("#content").text() ){ 
    $('input#bt23').show();
  } else { 
    $('input#bt23').hide();
  }
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="content">Content here</div>
<input type="button" id="bt23" class="bt23"  name="Button1" value="720p" />
&#13;
&#13;
&#13;


仅限空格

&#13;
&#13;
$(document).ready(function() { 
  if ( $("#content").text().trim() ){ 
    $('input#bt23').show();
  } else { 
    $('input#bt23').hide();
  }
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="content">   </div>
<input type="button" id="bt23" class="bt23"  name="Button1" value="720p" />
&#13;
&#13;
&#13;


检查特定div

我们在这里可以有点创意。我们假设我们正在内容中寻找.video_wrapper div。我们可以简单地查询它,如果找不到,返回的长度将为零,导致输入隐藏。

&#13;
&#13;
$(document).ready(function() {
  console.log($("#content .video-wrapper"));
  if ($("#content .video-wrapper").length > 0) {
    $('input#bt23').show();
  } else {
    $('input#bt23').hide();
  }
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="content">
  <div class="content">
    <div style="whatever">
      <div class="video-wrapper"></div>
    </div>
  </div>
</div>
<input type="button" id="bt23" class="bt23" name="Button1" value="720p" />
&#13;
&#13;
&#13;

检查特定的div - plain JS

&#13;
&#13;
function windowReady() {
  if (document.querySelector("#content .video-wrapper")) {
    document.getElementById('bt23').style.display = "block";
  } else {
    document.getElementById('bt23').style.display = "none";
  }
};

window.onload = windowReady;
&#13;
<div id="content">
  <div class="content">
    <div style="whatever">
      <div class="video-wrapper"></div>
    </div>
  </div>
</div>
<input type="button" id="bt23" class="bt23" name="Button1" value="720p" />
&#13;
&#13;
&#13;

答案 1 :(得分:0)

你想要完成这样的事情吗?

 $(document).ready(function() { 
   if ( $("#content").html() == '' )
   { 
     $('input#bt23').hide();
   }
   else { 
     $('input#bt23').show();
   }
});

答案 2 :(得分:0)

首先,这应该在PHP中处理服务器端,你应该检查是否有任何竞争出现。没有这样做有一个jquery解决方案。

if($.trim($("#content").text()) == ""){$("#bt23").hide();}