web-dev-qa-db-ja.com

jQuery:appendTo親

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

15
curly_brackets

以下で十分です:

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

ここでそれが動作するのを見てください: http://jsfiddle.net/EtxqL/

「selector」パラメーターからappendTo()への各項目の親を推測することはできません。必要なことを行う唯一の方法は、アイテムをループして、それぞれを親に追加することです。次のリンクでAPIを確認してください。

。appendTo()API

。each API

28
James Wiseman

これはあなたが求めているものですか?

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

単に<img>すべてのコンテナ内で、コンテナの最初の子として移動します。

5
David Tang

親の最後にAppend insertを追加する代わりに、 。prepend() を使用できます。ただし、親から先頭に挿入を追加します。だからそれから:

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

私は 小さな例 を作りました、そしてあなたが同じことを意味することを願っています...

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