Jquery,带有两个类的div隐藏一个显示另一个-冲突?

Jquery,带有两个类的div隐藏一个显示另一个-冲突?,jquery,class,hide,show,Jquery,Class,Hide,Show,很抱歉,如果这是在以前的线程中回答的,我找不到一个 我有四个部分:第一部分,第二部分,第三部分,第四部分 每个部分都有类,因此我根据该部分隐藏和显示。问题是有些类需要在第1节和第2节中显示 <div class="section1 section2"> blah blah </div> $('a.homeLink').click(function(){ $('.section1').show(); $('.section2, .section3, .sectio

很抱歉,如果这是在以前的线程中回答的,我找不到一个

我有四个部分:第一部分,第二部分,第三部分,第四部分

每个部分都有类,因此我根据该部分隐藏和显示。问题是有些类需要在第1节和第2节中显示

<div class="section1 section2">
blah blah
</div>

$('a.homeLink').click(function(){
  $('.section1').show();
  $('.section2, .section3, .section4').hide();
  return false;
});

废话
$('a.homeLink')。单击(函数(){
$('.section1').show();
$('.section2、.section3、.section4').hide();
返回false;
});
正如您在本例中看到的,我在两个部分中有一个div,但正如我所想的那样,由于隐藏类section2,它仍然是隐藏的

解决方法或解决方案


谢谢

如果
第1节始终优先于
第2节
,只需更改调用顺序:

$('.section2, .section3, .section4').hide();
$('.section1').show();

如果不是那么简单,您需要告诉我们更多关于需求的信息。

我建议重新考虑您的CSS模式……或者重新排序您的JavaScript事件。CSS和脚本事件都有一个自然的级联,需要在模式中仔细考虑。你越是反对这种自然的级联,你的CSS和JavaScript就会越混乱。

你可以添加一个通用的节类,然后过滤“实例类”(例如节1):


废话
废话
$('a.homeLink')。单击(函数(){
var sections=$('.section');
$('section1',sections.show();
sections.not('.section1').hide();
返回false;
});

我同意这里的说法。通过按id名称隐藏/显示而不是按类名显示,您可以更具体地了解所需内容。section1并不总是优先。它们是需要在部分中显示的帖子,但有些帖子会显示在两个或更多的页面上。假设我有10篇文章有第1部分的内容,但是其中的2篇文章也需要在第2部分中显示,所以给这些文章两个类,但是当第2部分被显示时,由于隐藏了第1部分,它们被隐藏了。我使用了ID,但是客户说用户每次都很难创建一个唯一的ID。不只是交替地将适当的类放入section,而是隐藏所有的section并只显示您当时想要看到的部分。这可能是一种更简单的方法,因为您只需要在div已经隐藏时进行管理。但是,如果页面上发生了许多其他事情,那么在某些情况下,这可能是次优的。
<div class="section section1 section2">
blah blah
</div>

<div class="section section3 section4">
blah blah
</div>

$('a.homeLink').click(function(){
  var sections = $('.section');
  $('section1', sections).show();
  sections.not('.section1').hide();
  return false;
});