使用jQuery更改标记中子项的位置

时间:2010-10-16 17:51:24

标签: jquery children traversal

我正试图改变身体的孩子的位置。我显然不明白该怎么做,但我认为如果下面的代码可行的话会很新颖:

var temp = $('body').children()[0];
$('body').children()[0] = $('body').children()[1];
$('body').children()[1] = temp;

可悲的是,对我来说,事实并非如此。我搜索并找到了.add()方法,但是我没有看到如何添加到父的开头/我不知道如何删除另一个孩子。

我感谢任何帮助。

3 个答案:

答案 0 :(得分:3)

这将改变身体中2个或更多物品的位置。

基本上,它只是反转身体中元素的位置。

它遍历body的每个孩子,并将该孩子添加到身体的开头。这将颠倒顺序,从而扭转身体中元素的位置。

$('body').children().each(function() {
    $(this).prependTo("body");
});​

Try it out with this jsFiddle

(的 for 3 elements

<强>参考文献:
.children()
.each()
.prependTo()

答案 1 :(得分:2)

要交换孩子,只需使用.prependTo()在开头粘贴您想要的任何元素,如下所示:

$('body').children().eq(1).prependTo('body');

通过交换数组中的元素,您只需更改jQuery对象中的元素,对该对象的引用......根本不会对DOM中的元素产生影响。

直接.prepend()一个元素直接形成这样的元素(基本上是上面转换成的元素):

$('body').prepend($('body').children().eq(1));

答案 2 :(得分:0)

如果你想将children元素放到指定的位置,你可以使用之前,之后像这样: jsFiddl

参考文献:

each

api.jquery.com/after /

api.jquery.com/find /

api.jquery.com/children /