jQuery:添加到父元素

22

我似乎无法让 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个回答

39

以下应该就足够了:

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

查看演示请点击此处: http://jsfiddle.net/EtxqL/

你无法从appendTo()的'selector'参数推断出每个条目的父级。想要完成你想要的操作,唯一的方法是遍历这些条目,并将每一个附加到其父级上。请查看以下链接中的API文档。

.appendTo() API文档

.each API文档


8

您需要的是这个吗?

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

它只需将每个容器中的<img>元素移动到容器的第一个子元素位置。


2

您可以使用.prepend()代替append。 append将内容插入到父级的末尾。 而prepend将内容插入到父级的开头。 因此可以这样使用:

$('.container > p').each(function () {
    $(parent).prepend(this);
});

1

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

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接