2017-01-11 5 views
-1

DOM要素をDOM内に移動しますが、DOM要素を独自のコンテナに保持したままにします。私はまだdivの.containの内側にそれを維持しながら、ちょうどEの下に、このリストの最後にAを含む.bitを入れたいDOM要素を独自のコンテナに入れたまま移動する

<div class="contain"> 
    <div class="bit">A</div> 
    <div class="bit">B</div> 
    <div class="bit">C</div> 
    <div class="bit">D</div> 
    <div class="bit">E</div> 
</div> 

は、次のHTMLを取ります。

$('.contain').find('bit').first().appendTo('.contain'); 

と::

$('.contain').find('bit').first().insertAfter($('.contain').find('bit').last()); 

そして、それらのどちらも動作し

は、私は、次の試してみました。

私はHTMLをほとんど制御できません。たとえば、私はそれぞれ.bitに独自の一意のIDを与えることはできません。

誰かが私が間違っていることを説明できますか?

+3

あなたは試すました: '.find( 'ビット。')' ' –

+1

するvar C = document.querySelectorは( "含まれています。"); c.appendChild(c.firstElementChild); ' –

+0

@ freedomn-mが正しいです。 find関数は、クラス、ID、タグ名、およびセレクタ式である$()を受け入れることができます。したがって、クラスは '。'によって定義されなければなりません。それの前に – JeremyS

答えて

1

ちょうど同じコンテナににそれを追加し、Aは、リストの最後にを移動です。

あなたの2回の試行がうまくいきます - あなたはfind('.bit')の部分の.が見つかりませんでした。

下記を参照のデモ:

$('.contain').append($('.contain .bit:first-child')); 
 

 
// the below works too 
 
// $('.contain').find('.bit').first().appendTo('.contain'); 
 

 
// and even this works 
 
// $('.contain').find('.bit').first().insertAfter($('.contain').find('.bit').last());
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<div class="contain"> 
 
    <div class="bit">A</div> 
 
    <div class="bit">B</div> 
 
    <div class="bit">C</div> 
 
    <div class="bit">D</div> 
 
    <div class="bit">E</div> 
 
</div>

1

あなたはすでに.containスニペットを作業

$('.contain').find('.bit').first().appendTo('.contain'); 

に使用するクラスセレクタ.を、使用する必要があります。

$('.contain').find('.bit').first().appendTo('.contain');
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="contain"> 
 
    <div class="bit">A</div> 
 
    <div class="bit">B</div> 
 
    <div class="bit">C</div> 
 
    <div class="bit">D</div> 
 
    <div class="bit">E</div> 
 
</div>

関連する問題