コードで直接説明しましょう。
私は持っている:
<dl class="ctx accordion">
<dt>headline<a>x</a></dt>
<dd><!----></dd>
</dl>
<p class="ctx">Lorem ipsum dolor sit amet, consetetur sadipscing elitr</p>
<p class="ctx">Lorem ipsum dolor sit amet, consetetur sadipscing elitr</p>
<p class="ctx">Lorem ipsum dolor sit amet, consetetur sadipscing elitr</p>
<dl class="ctx accordion">
<dt>headline<a>x</a></dt>
<dd><!----></dd>
</dl>
<p class="ctx">Lorem ipsum dolor sit amet, consetetur sadipscing elitr</p>
<dl class="ctx accordion">
<dt>headline<a>x</a></dt>
<dd><!----></dd>
</dl>
<p class="ctx">Lorem ipsum dolor sit amet, consetetur sadipscing elitr</p>
<p class="ctx">Lorem ipsum dolor sit amet, consetetur sadipscing elitr</p>
そして、すべての .ctx:not('.accordion') が前の .accordion dd などに入ることを達成したい
これが私の試みです:
$('.accordion').each(function(index) {
var nextCTX = $(this).nextAll('.ctx').not('.accordion');
$(this).find('dd').append(nextCTX);
});
しかし、それはうまくいきません。この例では、すべてを .ctx でキャッチし、最初の .accordion dd に入れます
どうしたの?
#編集
アコーディオン ループを停止するソリューションが必要です。私の現在は次のようになります: $('.accordion dd').append(function() { return $(this).closest('.accordion').nextUntil('.accordion').filter('.ctx:not( ".stopLast")'); });
この場合、ループは .stopLast を使用して elem の後にすべてを含めることを停止できません