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/

'selector'パラメーターから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

親の最後にAppendinsertを追加する代わりに、.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 に答える