2016-10-24 12 views
0

私はカードベースのレイアウトを作成しています。各カード内には製品に関する詳細が表示されます。そのうちの1つは、実際の番号(例:555-555-5555)として書かれた電話番号です。各コンテナ内のDOM内の要素を移動する

私がしようとしているのは、テキスト値を空にし、それを素材デザインアイコンに置き換え、要素をカードDOM内の別の場所に移動することです。

は、ここで私は、私は$(this)を使用して試した

$('#mainPage li.card').each(function(){ 

    $('.phone').text('').append('<i class="material-icons">textsms</i>').appendTo(WHAT HERE?); 
}); 

...努力しているが、それが動作するように見えることはできませんものです。 私はeach()を使わずに書きましたが、各カードに電話番号のアイコンを何度も置くので、.each()アプローチを始めました。どんな助けでも大歓迎です。

+0

'.text()'は上書きします。空にする必要はなく、 '.append()'を使用します。 '$( '。phone')。append( ' textsms')'を実行します。また、要素を移動するDOMと場所を共有してください。移動する場所がわかりません。 –

+0

それぞれの '.phone'をそれぞれの' li.card'に追加します。 '.phone'は現在' .card'の中に深く入れ子になっています。私はちょうど正しい方向で指摘する必要があり、この一般的なアプローチが正しいかどうか、あるいは私がそれを間違って見ているかどうか。 – nvrwithoutacause

答えて

1

あなたの問題はappendToにはありません。最初のものは$('.phone')です。これは、反復している特定のli.card内のものだけでなく、class = phoneを持つすべての要素を選択していることです。したがって、.each()が最後のli.cardに到達すると、それは他のすべての電話要素を取り、それらを最後のカードに追加します。

はちょうどあなたが最初にしようとしたとして、 .appendTo($(this))が正常に動作する必要があり、その後、 $(this).find('.phone')

として$('.phone')を交換、修正します。

+0

パーフェクト、これは私が探していたもので、すぐに問題を解決できました。ありがとう! – nvrwithoutacause

関連する問題