在我的情况下,我有一个由另一个元素(祖父母)覆盖的两个html元素,如此
<div class="tabs">
<ul class="header">
<li> <a> </a> </li>
</ul>
<div class="content show"> </div>
</div>
此处tabs
是一位盛大的父母,header
和show
是我的问题,点击<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}}
答案 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();
答案 1 :(得分:0)
试试这个:
$( this ).parent().parent().siblings(".content").removeClass('show');