我尝试过在StackOverflow和Google上搜索,我发现了一些我觉得可行的想法,但似乎没有任何帮助!
我正在使用SugarCRM Professional 6.5.5并且我试图隐藏子表的父div,如果使用jQuery隐藏表(display:none)但我没有太多运气。
例如,在下面的代码中,我试图隐藏<div id="detailpanel_5" class="detail view detail508 expanded">
,因为隐藏了子表<table id="LBL_EDITVIEW_PANEL6" class="panelContainer" cellspacing="0" style="overflow: hidden; height: 0px; display: none;">
。
我能够使用$('#LBL_EDITVIEW_PANEL6').parent().hide();
成功隐藏父div但是问题是每个页面上隐藏了很多表,并且视图是动态的 - 并非每个页面都隐藏相同的表。
所以我想要的jQuery是在加载后浏览页面并只隐藏隐藏的子表的父div。
我尝试使用类似$(":hidden").parent().hide();
的内容来搜索任何隐藏的元素,但隐藏整个页面(屏幕完全是白色的)。我试过$("table:hidden").parent().hide();
,但似乎没有做任何事情。
如果我遗漏了帮助答案所需的任何细节,请道歉。如果需要,我将很乐意提供更多信息。希望这是我忽略的非常小的东西。
HTML的一小部分内容如下:
<div class="yui-content">
<div id="tabcontent0">
<div id="detailpanel_1" class="detail view detail508 ">
<div id="detailpanel_2" class="detail view detail508 expanded">
<div id="detailpanel_3" class="detail view detail508 expanded">
<div id="detailpanel_4" class="detail view detail508 expanded">
<h4>
<table id="LBL_EDITVIEW_PANEL7" class="panelContainer" cellspacing="0">
<script type="text/javascript">
</div>
<div id="detailpanel_5" class="detail view detail508 expanded">
<h4>
<table id="LBL_EDITVIEW_PANEL6" class="panelContainer" cellspacing="0" style="overflow: hidden; height: 0px; display: none;">
答案 0 :(得分:3)
$(":hidden")
也会返回<head>
,<style>
,<script>
等元素。他们的父母是<html>
文件本身。所以$(":hidden").parent().hide();
自然会隐藏整个文档。因此,你必须更具体一点。
正如@denisk所说$('table:hidden').parent().hide();
应该完美无缺。
在您显示的代码中,它可能因<h4>
标记而无效。
答案 1 :(得分:1)
$(':hidden').parent().hide();
答案 2 :(得分:0)
试试这个。因为您将css显示设置为无
$('table').each(function(){
if ($(this).css("display") == "none")
{
$(this).parent().hide();
}
})