让我直接在代码中解释:
我有:
<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”)'); });
在这种情况下,循环不能阻止包含.stopLast
的elem之后的所有内容答案 0 :(得分:2)
定位您要添加到的元素,然后查找与p.ctx
匹配的所有元素,直到下一个.accordion
元素:
$('.accordion dd').append(function() {
return $(this).closest('.accordion').nextUntil('.accordion').filter('p.ctx');
});
答案 1 :(得分:1)
试试这个
$('.accordion').filter(function () {
$(this).nextUntil('.accordion').filter('.ctx').appendTo($(this).find('dd'));
});
答案 2 :(得分:1)
$('.accordion').each(function (index) {
var nextCTX = $(this).nextUntil('.accordion').filter('.ctx');
$(this).find('dd').append(nextCMP);
});
答案 3 :(得分:1)
假设.accordion元素将始终是.ctx:not('。accordion')的兄弟,那么你可以使用:
$('.ctx.accordion').each(function () {
var $this = $(this),
$elemsToMove = $this.nextUntil('.accordian', '.ctx');
$this.find('dd').append($elemsToMove);
});