Позвольте мне объяснить это прямо в коде:
У меня есть:
<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') идут в prev.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") ');});
в этом случае цикл can not stop a включает все после elem с.stopLast
Нацельте элементы, которые вы хотите добавить, а затем найдите все элементы, которые соответствуют p.ctx
до следующего .accordion
элемент:
$('.accordion dd').append(function() {
return $(this).closest('.accordion').nextUntil('.accordion').filter('p.ctx');
});
Предполагая, что элементы.accordion всегда будут братьями и сестрами.ctx: not ('. Accordion'), вы можете использовать:
$('.ctx.accordion').each(function () {
var $this = $(this),
$elemsToMove = $this.nextUntil('.accordian', '.ctx');
$this.find('dd').append($elemsToMove);
});
Попробуйте .nextUntil()
$('.accordion').each(function (index) {
var nextCTX = $(this).nextUntil('.accordion').filter('.ctx');
$(this).find('dd').append(nextCMP);
});
Попробуй это
$('.accordion').filter(function () {
$(this).nextUntil('.accordion').filter('.ctx').appendTo($(this).find('dd'));
});