2017-02-16 15 views
1

私はこのhtml構造を持っています。私は、他のフィールド項目を他の項目と一緒にしたい。ある要素から別の要素に画像を移動する必要があります

<div class="secondary-images"> 
    <div data-quickedit-field-id="node/29/rd_page_secondary_image/da/full" class="group1"> 
    <div class="field__item"></div> 
    <div class="field__item"></div> 
    <div class="field__item"></div> 
    <div class="field__item"></div> 
    <div class="field__item"></div> 
    <div class="field__item"></div> 
    </div> 
    <div data-quickedit-field-id="node/29/rd_page_secondary_image/da/full" class="group2"> 
    <div class="field__item"></div> 
    <div class="field__item"></div> 
    </div> 
</div> 

これが欲しいです。

<div class="secondary-images"> 
    <div data-quickedit-field-id="node/29/rd_page_secondary_image/da/full" class="group1"> 
    <div class="field__item"></div> 
    <div class="field__item"></div> 
    <div class="field__item"></div> 
    <div class="field__item"></div> 
    <div class="field__item"></div> 
    <div class="field__item"></div> 
    <div class="field__item"></div> 
    <div class="field__item"></div> 
    </div> 
    <div data-quickedit-field-id="node/29/rd_page_secondary_image/da/full" class="group2"> 

    </div> 
</div> 

どのように要素を移動しますか? 私はこれを試したが運がなかった。

var $element = $('.secondary-images > .group2').detach(); 
$('.secondary-images > .group1').append($element); 
+0

あなたは**何か**構造ですか? –

+0

2番目のdivに追加して最初のdivから削除しないのはなぜですか? update:あなたの構造がどのようなものなのかによって、コンテンツだけでなく、group1 div内の.group2 div全体が得られます。あなたはそれを部分集合にわたって反復することができます。 – LordNeo

+0

[要素を別の要素に移動する方法は?](http://stackoverflow.com/questions/1279957/how-to-move-an-element-into-another-element) –

答えて

1

次のコードは完璧に動作するはずです:

$('.secondary-images .group2').detach().appendTo($('.secondary-images .group1')); 

短くてシンプル。

+0

本当にありがとうございました。 –

+0

私はそれを行います。あなたが助けてくれると嬉しいです。 –

+0

もう一度私を助けてもらえますか?今私は私の古い部門になかった余分なものがたくさんありますが、あなたはそれが何であるかを知っています。ありがとうございました –

1

1.-間違い:domが操作可能であることを確認してください。だから、これは正常に動作する必要があります

$(document).ready(function() { 
    var $element = $('.secondary-images > .group2').detach(); 
    $('.secondary-images > .group1').append($element); 
}); 

2.-あなたはそれが仕事をしたい方法:原因レイアウトには、上記のコードは、それをネスト、group1 divの内側に表示されるように、全体group2のdivを行います。

$(document).ready(function() { 
 
    $('.secondary-images > .group2 > .field__item').each(function() { 
 
    $(this).detach(); 
 
    $('.secondary-images > .group1').append(this); 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<div class="secondary-images"> 
 
    <div data-quickedit-field-id="node/29/rd_page_secondary_image/da/full" class="group1"> 
 
     <div class="field__item">a</div> 
 
     <div class="field__item">b</div> 
 
     <div class="field__item">c</div> 
 
     <div class="field__item">d</div> 
 
     <div class="field__item">e</div> 
 
     <div class="field__item">f</div> 
 
    </div> 
 
    <div data-quickedit-field-id="node/29/rd_page_secondary_image/da/full" class="group2"> 
 
     <div class="field__item">g</div> 
 
     <div class="field__item">h</div> 
 
    </div> 
 
</div> 
 
<!-- REFERENCE 
 
<div class="secondary-images"> 
 
    <div data-quickedit-field-id="node/29/rd_page_secondary_image/da/full" class="group1"> 
 
     <div class="field__item"></div> 
 
     <div class="field__item"></div> 
 
     <div class="field__item"></div> 
 
     <div class="field__item"></div> 
 
     <div class="field__item"></div> 
 
     <div class="field__item"></div> 
 
     <div class="field__item"></div> 
 
     <div class="field__item"></div> 
 
    </div> 
 
    <div data-quickedit-field-id="node/29/rd_page_secondary_image/da/full" class="group2"> 
 

 
    </div> 
 
</div> 
 
-->

これは切り離し、グループ2からのすべてのfield__itemを追加し、その後、あなたが行うことができ、グループ1の上にそれを置くだろう:私はあなたがそれだけので、ここでの内容を置きたいと思いますが、スニペットですあなたがグループ2で気に入っているものは、それを削除するか、後でコンテンツでいっぱいにしておきます。

+0

なぜ$で変数を開始できないのですか?私たちは常にそれを行い、変数がjQueryオブジェクトを参照していることを識別するのに役立ちます。 – Chris

+0

申し訳ありませんが、私の間違い(間違った言語)、唯一の間違いは、関数が呼び出されたときにDOMが準備ができていないということです。 – LordNeo

1

これは1行で行うことができます。関数やイベントを入れることができます。

$('.secondary-images > .group2 > div').appendTo('.secondary-images > .group2'); 
1

これはそれを行うだろう。

var $element = $('.secondary-images > .group2 .field__item').detach(); 
$('.secondary-images > .group1').append($element); 
1

これを試してみてください:ここで</body>

は一例で直前に

$('.secondary-images .group2 .field__item').appendTo($('.secondary-images .group1')); 
1

これは私のために働いた。

$('.secondary-images .group2 .field__item').detach().appendTo($('.secondary-images .group1')); 
$('.secondary-images .field__item').each(function() { 
    if ($(this).find('picture').length) {} else { 
     $(this).remove(); 
    } 
});­­­­ 
関連する問題