隐藏子表如果隐藏子表(显示:无)

时间:2012-10-17 19:16:39

标签: jquery sugarcrm

我尝试过在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;">

3 个答案:

答案 0 :(得分:3)

$(":hidden")也会返回<head><style><script>等元素。他们的父母是<html>文件本身。所以$(":hidden").parent().hide();自然会隐藏整个文档。因此,你必须更具体一点。

正如@denisk所说$('table:hidden').parent().hide();应该完美无缺。

在您显示的代码中,它可能因<h4>标记而无效。

答案 1 :(得分:1)

$(':hidden').parent().hide();

应该有效:http://jsfiddle.net/UtGM3/

答案 2 :(得分:0)

试试这个。因为您将css显示设置为无

$('table').each(function(){
if ($(this).css("display") == "none")
{
$(this).parent().hide();
}
})