-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,而不是在每个 div .product-actions 的开头添加:

http://jsfiddle.net/upKhq/2/ 有什么想法吗?

4

4 回答 4

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');
});

您犯了一些错误:您的选择器不是上下文敏感的,并且您使用的选择器id必须prependTo是唯一的,但是您有 2 个具有相同 id 的 div。

于 2013-08-23T09:10:11.803 回答
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 回答
0

使用.each, 并使用 $(this) 来引用当前.product-actions元素。你也不能有多个相同的 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');   
});

并且您不应该对两个元素使用相同的 id。

于 2013-08-23T09:11:20.120 回答