私はこの HTML 構造を持っており、それをアコーディオンに変換したいと考えています。
<div class="accor">
<div class="section">
<h3>Sub section</h3>
<p>Sub section text</p>
</div>
<div class="section">
<h3>Sub section</h3>
<p>Sub section text</p>
</div>
<div class="section">
<h3>Sub section</h3>
<p>Sub section text</p>
</div>
</div>
基本的に をh3
アコーディオン ヘッダーとして使用し、それぞれの残りのdiv.section
コンテンツを各アコーディオン パネルのコンテンツとして使用します。(注: 見出しは、ネストに応じて、h2 から h6 の間のいずれかになります)。
デフォルトでアコーディオンがどのように機能するかという理由から、DOM ツリーを再構築してh3
s をそれぞれの外側にすると、これが最も簡単になると考えました。div
<h3>Sub section</h3>
<div class="section">
<p>Sub section text</p>
</div>
唯一の問題は、見出しを移動する方法です。(HTML を変更するアクセス権がありません)。
var $sections = $("div.accor > .section"),
$headings = $sections.find("> :header")
;
// I figured that inserting each heading to be before its parent might
// be the answer:
$headings.insertBefore($headings.find(":parent"));
// ... but that doesn't do anything