0

私は次の構造を持っています:

<div id="camera_wrap">
  <div data-src="Slider-Image-1.jpg" class="test"></div>
  <div class="camera_caption fadeFromBottom">a</div>
  <div data-src="Slider-Image-2.jpg" class="test"></div>
  <div class="camera_caption fadeFromBottom">b</div>
  <div data-src="Slider-Image-3.jpg" class="test"></div>
  <div class="camera_caption fadeFromBottom">c</div>
</div>

次のように、class="camera_caption" を含む div を親 div に移動する必要があります。

<div id="camera_wrap">
  <div data-src="Slider-Image-1.jpg" class="test"><div class="camera_caption fadeFromBottom">a</div></div>
  <div data-src="Slider-Image-2.jpg" class="test"><div class="camera_caption fadeFromBottom">b</div></div>
  <div data-src="Slider-Image-3.jpg" class="test"><div class="camera_caption fadeFromBottom">c</div></div>
</div>

これどうやってするの?

マリオ

4

4 に答える 4

0

次のようにします。

$('[data-src^="Slider-Image"]').each(function () {
    $(this).append($(this).next('.camera_caption').html());
});
$('[data-src^="Slider-Image"]').siblings('.camera_caption').remove();

最初にdata-src="Slider-Image"with.each()関数をループし、次の div.html()を通過さ.append()せてから、ループの外側でその兄弟を見つけて削除します。

フィドルで検索

于 2013-03-31T15:24:23.030 に答える
0

ループでこれを行うことができます。jQuery は以下を提供しますeach

$('.camera_caption').each(function(){
    var o=$(this);
    o.appendTo(o.prev());
});

(前の要素を取得するため、各div がその直前の div にprev追加されます)camera_caption

于 2013-03-31T14:28:25.243 に答える
0
$(".camera_caption").each(function(){
    $(this).prev('.test').append($(this));       
});

その後、要素が完全に削除される原因となっていた行を編集して削除しました。これは機能しますが、そのような html 構造が必要な場合は、マークアップが生成されているときにこれを行うことをお勧めします。

デモ

于 2013-03-31T14:28:25.760 に答える