5

我已经尝试在 StackOverflow 和 Google 上进行搜索,我发现了我认为可行但似乎没有任何帮助的想法!

我在 SugarCRM Professional 6.5.5 中工作,如果使用 jQuery 隐藏表(显示:无),我正在尝试隐藏子表的父 div,但我运气不佳。

例如,在下面的代码中,我试图隐藏<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;">是隐藏的。

我能够成功隐藏父 div,$('#LBL_EDITVIEW_PANEL6').parent().hide();但问题是每个页面上隐藏了很多表格,并且视图是动态的 - 并非每个页面都会隐藏相同的表格。

所以我想要 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;">
4

3 回答 3

3

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

正如@denisk 所说,$('table:hidden').parent().hide();应该可以完美运行。

<h4>在您显示的代码中,它可能因为标签而不起作用。

于 2012-10-17T20:30:17.017 回答
1
$(':hidden').parent().hide();

应该工作:http: //jsfiddle.net/UtGM3/

于 2012-10-17T19:43:45.830 回答
0

试试这个。因为您将 css display 设置为 none

$('table').each(function(){
if ($(this).css("display") == "none")
{
$(this).parent().hide();
}
})
于 2012-10-17T19:24:41.300 回答