Я хотел бы скрыть все class = "csc-content", где предыдущий брат - это h4 class = "faq".

ОБНОВЛЕНИЕ Ошибка: я думаю, что это неправильно ... предыдущий брат не h4. Но я надеюсь, что вы уловили, что все «ответы» должны быть скрыты, если «вопрос» имеет класс «faq» / UPDATE.

Это HTML:

<div id="centerCol-1">
  <div id="c65" class="csc-default normal">
    <div class="csc-header csc-header-n1"><h4 class="faq">FAQ question1</h4></div>
    <div class="csc-content active"><p class="bodytext">Answer1</p></div>
  </div>
  <div id="c67" class="csc-default normal">
    <div class="csc-header csc-header-n2"><h4 class="faq">FAQ question2</h4></div>
    <div class="csc-content active"><p class="bodytext">Answer2</p></div>
  </div>
  <div id="c68" class="csc-default normal">
    <div class="csc-header csc-header-n3"><h4>not FAQ</h4></div>
    <div class="csc-content active"><p class="bodytext">Not an answer, just normal content</p></div>
  </div>
</div>

JQuery должен выглядеть примерно так:

// find all outer divs with class csc-default in the div centerCol-1
// test if they contain a header div with an h4 class faq
// go to next element and hide it. Error... this should be parents next element?
$("#centerCol-1 .csc-default").find("h4").is(".faq").next(".csc-content").hide();

BR . Андерс

2
Tillebeck 8 Мар 2010 в 15:27

3 ответа

Лучший ответ

Вам необходимо использовать смежный селектор вместе с : имеет селектор , например:

$('#centerCol-1 .csc-default .csc-header:has(.faq)+.csc-content').hide();

Демо

6
SLaks 8 Мар 2010 в 15:35
Ух ты! какой невероятно быстрый ответ! Отличный ответ, но я задал не тот вопрос и отредактировал его, пока вы отвечали.
 – 
Tillebeck
8 Мар 2010 в 15:33

Подождите, вы хотите скрыть только div ответа для каждого вопроса FAQ? Итак, если h4 имеет класс .faq, div сразу после родительского div будет скрыт:

$("#centerCol-1 h4.faq").parent().next("div").hide();
3
karim79 8 Мар 2010 в 15:47

Попробуй это:

$("#centerCol-1 .csc-content").filter(function() {
  return $(this).prev().find(".faq").length > 0;
}).hide();
0
Nick Craver 8 Мар 2010 в 15:31