我有一个结构:
<div class="faq-section">
<h4>1. Wie reserviere ich mir einen Platz, wenn ich einen Gutschein habe?</h4>
<p>Es gibt für Gutscheinbesitzer 2 Wege um sich einen Platz am Himmel bei uns zu reservieren.</p>
<ul>
<li>Sie können sich telefonisch Mo-Fr 09.00-17.00 Uhr unter <strong>056 667 27 08 </strong>oder</li>
<li>Sie nutzen unser elektronisches Reservationsformular, welches Sie <a title="Reservation" href="34-0-Reservation.html"> hier </a>finden.</li>
</ul>
<h4>2. Wie lange dauert eine Ballonfahrt?</h4>
<p>Je nach Angebot das Sie wählen hat eine Ballonfahrt unterschiedliche Dauer in der Luft. Der Ablauf VOR- und NACH- der Ballonfahrt ist jedoch immer der Selbe.</p>
<ol>
<li>Fahrt vom Treffpunkt zum Startplatz (ca. 0,5 h)</li>
<li>Aufbau des Ballons vor dem Start (ca. 0,5 h)</li>
<li>Fahrt mit dem Heissluftballon (je nach Ihrer Wahl der Ballonfahrt )</li>
<li>Verpacken des Ballons nach der Landung und Ballonfahrertaufe mit Champagner und persönlichem Zertifikat (ca. 0,5 h) </li>
<li>kostenlose Rückfahrt vom Landeplatz zum Ausgangspunkt (ca. 0,5 h)</li>
</ol>
</div>
Run Code Online (Sandbox Code Playgroud)
我想做的是制作手风琴.所以,我说display : none所有ol, ul and p的.faq-section
,所以我想在H4如何显示所有按照点击H4下一H4之前,所以所显示的下一H4之前的所有元素的元素,当点击就知道了.
如果你可以更改html标记,你可以将所有元素包装在div中,如下所示:
<h4>First</h4>
<div class='wrapper'>
<p>Par</p>
<ul>
<li>list</li>
</ul>
</div>
<h4>Second</h4>
.....
Run Code Online (Sandbox Code Playgroud)
并切换.wrapper元素的可见性.
jQuery的
如果您无法编辑标记,可以使用jquery nextUntil()函数:
$(document).on('click', 'h4', function() {
$('ul, ol, p').removeClass('vis');
$(this).nextUntil('h4').addClass('vis');
});Run Code Online (Sandbox Code Playgroud)
p,ul,ol { display:none }
p.vis,ul.vis,ol.vis { display:initial }Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div class="faq-section">
<h4>1. Wie reserviere ich mir einen Platz, wenn ich einen Gutschein habe?</h4>
<p>Es gibt für Gutscheinbesitzer 2 Wege um sich einen Platz am Himmel bei uns zu reservieren.</p>
<ul>
<li>Sie können sich telefonisch Mo-Fr 09.00-17.00 Uhr unter <strong>056 667 27 08 </strong>oder</li>
<li>Sie nutzen unser elektronisches Reservationsformular, welches Sie <a title="Reservation" href="34-0-Reservation.html"> hier </a>finden.</li>
</ul>
<h4>2. Wie lange dauert eine Ballonfahrt?</h4>
<p>Je nach Angebot das Sie wählen hat eine Ballonfahrt unterschiedliche Dauer in der Luft. Der Ablauf VOR- und NACH- der Ballonfahrt ist jedoch immer der Selbe.</p>
<ol>
<li>Fahrt vom Treffpunkt zum Startplatz (ca. 0,5 h)</li>
<li>Aufbau des Ballons vor dem Start (ca. 0,5 h)</li>
<li>Fahrt mit dem Heissluftballon (je nach Ihrer Wahl der Ballonfahrt )</li>
<li>Verpacken des Ballons nach der Landung und Ballonfahrertaufe mit Champagner und persönlichem Zertifikat (ca. 0,5 h) </li>
<li>kostenlose Rückfahrt vom Landeplatz zum Ausgangspunkt (ca. 0,5 h)</li>
</ol>
</div>Run Code Online (Sandbox Code Playgroud)
在不更改标记的情况下,您可以使用以下nextUntil()函数:
CSS:
.faq-section>*:not(h4) {
display: none;
}
Run Code Online (Sandbox Code Playgroud)
jQuery的
$(function() {
$('.faq-section h4').on('click', function() {
$(this).nextUntil('h4').toggle();
});
});
Run Code Online (Sandbox Code Playgroud)