3

私の場合、このように別の要素(祖父母)で覆われた2つのhtml要素があります

 <div class="tabs">
  <ul class="header">
    <li> <a> </a> </li>
  </ul>
  <div class="content show"> </div>
  </div>

ここtabsに祖父母があり、そのheader子は私showの問題です<a>headershowheader

私はclosest()それを使用しましたが役に立ちません ここに私の試したデモがあります

$(this).closest('content').removeClass('show');

手伝ってください

編集:(jsfiddleのマークアップ)

<div class="tabs">
    <ul class="tabheader">
        <li class="active"><a href="#fragment-1"><span>FAQs</span></a>
        </li>
        <li><a href="#fragment-2"><span>Credit bundle</span></a>
        </li>
        <li><a href="#fragment-3"><span>Delivery & turnaround times</span></a>
        </li>
        <li><a href="#fragment-4"><span>Testimonials</span></a>
        </li>
    </ul>
    <div class="clearfix"></div>
    <div id="fragment-1" class="tabed_contents show">adasdasd</div>
    <div id="fragment-2" class="tabed_contents">adasdasd</div>
    <div id="fragment-3" class="tabed_contents">adasdasd</div>
    <div id="fragment-4" class="tabed_contents">adasdasd</div>
</div>
4

2 に答える 2

3

.まず、クラス セレクターでプレフィックスを使用する必要があります。ただし、親要素を探していますが.content、それは親の兄弟であるため、見つかりません。

これを試して:

$(this).closest('.tabs').find('.tabed_contents').removeClass('show');

.headerまたは、に移動して兄弟を見つけることもできます.content

$(this).closest('.header').siblings('.tabed_contents').removeClass('show');

すべてを非表示にしないには、.tabed_contents次を使用します。

$(this).closest('.tabs').find('.tabed_contents').hide();

フィドル

于 2013-10-09T10:12:07.860 に答える