20

我似乎无法让 appendTo 工作。我做错了什么?

$('div:nth-child(2n) img').appendTo(parent);

当前标记:

<div class="container">
  <img src="123.jpg" />
  <p>Hey</p>
</div>
<div class="container">
  <img src="123.jpg" />
  <p>Hey</p>
</div>

我想要这个输出:

<div class="container">
  <p>Hey</p>
  <img src="123.jpg" />
</div>
<div class="container">
  <p>Hey</p>
  <img src="123.jpg" />
</div>

请帮帮我......我每分钟都在撕裂我的头发...... :-S

4

4 回答 4

37

以下应该足够了:

$("div>img").each(function(){
    $(this).appendTo($(this).parent());
});

看到它在这里工作:http: //jsfiddle.net/EtxqL/

您不能从“选择器”参数推断每个项目的父项到 appendTo()。做你想做的事情的唯一方法是遍历项目,将每个项目附加到其父项。查看以下链接中的 API。

.appendTo() API

.each API

于 2011-01-13T12:23:48.690 回答
6

这就是你所追求的吗?

$('.container > img').each(function () {
    $(this).parent().append(this);
});

它只是将<img>每个容器内的内容作为容器的第一个子元素移动。

于 2011-01-13T12:19:50.047 回答
2

您可以使用.prepend()而不是在父级末尾追加追加插入。但是在父项的开头添加插入。所以然后喜欢:

$('.container > p').each(function () {
    $(parent).prepend(this);
});
于 2011-01-13T12:36:11.717 回答
0

我举了一个小例子,我希望你的意思是一样的......

$(document).ready(function() {
    $('.container > img').each(function() {
        $(this).parent().append(this);
    });
});
于 2011-01-13T12:49:25.690 回答