Frage

würde Ich mag alle class = "csc-content" verstecken, wo frühere Geschwister ist ein h4 class = "FAQ".

UPDATE Fehler: Ich denke, das ist falsch ... die vorherigen Geschwister nicht h4. Aber ich hoffe, Sie erhalten den Punkt, dass alle „Antwort“ wird ausgeblendet, wenn die „Frage“ die Klasse „faq“ hat / UPDATE

Dies ist der 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 sollte so etwas wie:

// 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. Anders

War es hilfreich?

Lösung

Sie müssen die benachbarten Selektor verwenden zusammen mit der : hat Selektor, wie folgt aus:

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

Demo

Andere Tipps

Moment mal, wollen Sie nur die Antwort div für jede FAQ Frage verbergen? Wenn also die h4 hat die Klasse .faq, die div unmittelbar nach der Mutter div versteckt wird:

$("#centerCol-1 h4.faq").parent().next("div").hide();

Versuchen Sie folgendes:

$("#centerCol-1 .csc-content").filter(function() {
  return $(this).prev().find(".faq").length > 0;
}).hide();
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top