2

我有一个带有子 DIV 的容器 DIV,例如:

<div class="parent">
    <div id="one" class="child"></div>
    <div id="two" class="child"></div>
    <div id="three" class="child"></div>
    <div id="four" class="child active"></div>
    <div id="five" class="child"></div>
</div>

我想要的是子 DIV 之前的所有子.activeDIV 都将被删除并附加在底部,所以它现在看起来像这样:

<div class="parent">
    <div id="four" class="child active"></div>
    <div id="five" class="child"></div>
    <div id="one" class="child"></div>
    <div id="two" class="child"></div>
    <div id="three" class="child"></div>
</div>

我怎么能在jquery中做到这一点?

谢谢 :)

4

5 回答 5

4

像这样 :

$('div:lt('+$('.active').index()+')', '.parent').appendTo('.parent');

小提琴

于 2013-06-21T20:05:29.103 回答
2
$('.active').nextAll().addBack().prependTo('.parent');

jsFiddle 示例

没有克隆,没有字符串连接,也没有.each()

于 2013-06-21T20:14:27.730 回答
1

如果有多个divs

$('.parent').each(function() {
    $(this.firstChild).nextUntil('.active').appendTo(this);
});

演示

于 2013-06-21T20:08:47.457 回答
1

像这样的东西-

var $cloned = $('.parent .active').prevAll().clone().end().remove();
$('.parent').append($cloned.get().reverse());

演示----> http://jsfiddle.net/AqS4u/1/

于 2013-06-21T20:04:59.427 回答
0

这应该这样做:

$('.active').prevAll().appendTo('.parent');

编辑实际上,不是,但我会留在这里留给后代 -.prevAll()集合以相反的顺序返回,所以附加不能正常工作。

于 2013-06-21T20:07:16.223 回答