-1

.details を .buttons の外に移動しようとしています

   <div class="product-actions">product 1
      <div class="buttons buttons_3 group">buttons
         <a class="details" title="Détails" rel="nofollow" >link</a>
      </div>
   </div>

   <div class="product-actions">product 2
      <div class="buttons buttons_3 group">buttons
        <a class="details" title="Détails" rel="nofollow" >link</a>
    </div>
  </div>

これはトリックを行います

if ($('.product-actions').length )
    {       

    $('.product-actions').prepend("<div id='new_details_location'></div>");
    $(".details").prependTo("#new_details_location");

    $('.buttons_3').attr('class','buttons buttons_2 group');        
    }

問題は、複数の製品があり、すべての a.details が各 div .product-actions の先頭に追加されるのではなく、最初の製品 div に移動されることです。

http://jsfiddle.net/upKhq/2/ アイデアはありますか?

4

4 に答える 4

2

代わりにこれをするつもりでしたか?

$('.product-actions').each(function() {
    $elem = $("<div class='new_details_location'></div>");
    $(this).find(".details").prependTo($elem);
    $(this).prepend($elem);
});

$('.buttons_3').attr('class', 'buttons buttons_2 group');

http://jsfiddle.net/samliew/upKhq/4/

于 2013-08-23T09:11:02.530 に答える
2

このフィドルを試してみてください

$('.product-actions').each(function () {
    $new = $(this).prepend("<div class='new_details_location'></div>");
    $(".details", $(this)).prependTo($new);

    $('.buttons_3', $(this)).attr('class', 'buttons buttons_2 group');
});

いくつかの間違いを犯しました: セレクターはコンテキストに依存せず、一意でなければならない in を使用idprependToていましたが、同じ ID を持つ 2 つの div がありました。

于 2013-08-23T09:10:11.803 に答える
0

を使用.eachし、$(this) を使用して現在の.product-actions要素を参照します。また、同じIDを複数持つことはできません。最初のIDのみが使用されます

if ($('.product-actions').length ) {       
   $('.product-actions').each(function() {
      var newDetailLocation = $('<div></div>');
      $(this).prepend(newDetailLocation);
      $(".details",$(this)).prependTo(newDetailLocation);
      $('.buttons_3',$(this)).attr('class','buttons buttons_2 group');        
   });
}
于 2013-08-23T09:13:02.300 に答える
0

各 jquery メソッドを使用できます。

$('.product-actions').each(function() {
    var self = $(this);
    var new_location = $("<div id='new_details_location'></div>").prependTo(self);
    self.find(".details").prependTo(new_location);
    self.find('.buttons_3').attr('class','buttons buttons_2 group');   
});

また、2 つの要素に同じ ID を使用しないでください。

于 2013-08-23T09:11:20.120 に答える