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>、、、etc要素も<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 に答える