如何使用jquery找到父级的兄弟姐妹

时间:2013-10-09 10:10:37

标签: jquery jquery-click-event

在我的情况下,我有一个由另一个元素(祖父母)覆盖的两个html元素,如此

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

此处tabs是一位盛大的父母,headershow是我的问题,点击<a>header需要的大孩子删除show

header个班级closest()

我使用了$(this).closest('content').removeClass('show'); 这对我的尝试demo

没有帮助
<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>

帮帮我

编辑 :( jsfiddle中的标记)

{{1}}

2 个答案:

答案 0 :(得分: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();

Fiddle

答案 1 :(得分:0)

试试这个:

$( this ).parent().parent().siblings(".content").removeClass('show');