0

我正在为我正在使用的移动购物车应用一些 jquery。每个产品都包含在一个带有产品类的 div 中。在每个产品中,缩略图和详细信息都有一个单独的 div。我想收集 div 类操作中的第一个链接并将其包裹在缩略图图像周围。然后我希望它为下一个产品重复,依此类推。谢谢。

这是一些显示产品流程的示例 html:

<div class="product">
  <div class="product-thumb"><img src="/product1.jpg"></div>
  <div class="product-details">
    <p>Product1</p>
    <div class="amount">
      <span class="price" id="product_price">$1.00</span>
    </div>
    <div class="actions">
      <a href="http://madeuplinktoproduct1detailspage"><img alt="Details" src="../images/details.png"></a>
      <a href="http://madeuplinktoproduct1cartpage"><img alt="Add to Cart" src="../images/btn-add-to-cart.png"></a>
    </div>
  </div>
</div>

<div class="product">
  <div class="product-thumb"><img src="/product2.jpg"></div>
  <div class="product-details">
    <p>Product2</p>
    <div class="amount">
      <span class="price" id="product_price">$2.00</span>
    </div>
    <div class="actions">
      <a href="http://madeuplinktoproduct2detailspage"><img alt="Details" src="../images/details.png"></a>
      <a href="http://madeuplinktoproduct2cartpage"><img alt="Add to Cart" src="../images/btn-add-to-cart.png"></a>
    </div>
  </div>
</div>

我试过这样的代码:

$(document).ready(function() {
      var link1 = $('.actions a:nth-child(1)').attr('href');
      $('product-thumb img').wrap('<a href="'
        $link1 '"></a>);
      });
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="product">
  <div class="product-thumb"><img src="/product1.jpg"></div>
  <div class="product-details">
    <p>Product1</p>
    <div class="amount">
      <span class="price" id="product_price">$1.00</span>
    </div>
    <div class="actions">
      <a href="http://madeuplinktoproduct1detailspage"><img alt="Details" src="../images/details.png"></a>
      <a href="http://madeuplinktoproduct1cartpage"><img alt="Add to Cart" src="../images/btn-add-to-cart.png"></a>
    </div>
  </div>
</div>

<div class="product">
  <div class="product-thumb"><img src="/product2.jpg"></div>
  <div class="product-details">
    <p>Product2</p>
    <div class="amount">
      <span class="price" id="product_price">$2.00</span>
    </div>
    <div class="actions">
      <a href="http://madeuplinktoproduct2detailspage"><img alt="Details" src="../images/details.png"></a>
      <a href="http://madeuplinktoproduct2cartpage"><img alt="Add to Cart" src="../images/btn-add-to-cart.png"></a>
    </div>
  </div>
</div>

4

2 回答 2

0

这里有两种方法可以做到:

$('div.product').each(function(){
    var link = $(this).find('div.actions a:first').attr('href');
    $(this).find('div.product-thumb img').wrap('<a href="'+link+'"/>')
})

jsFiddle 示例

$('div.product-thumb img').wrap(function(){
    return '<a href="' + $(this).parent().next().find('div.actions a:first').attr('href') + '"/>'
})

jsFiddle 示例

于 2015-04-10T16:57:44.343 回答
0

这应该这样做

$('.product').each(function(){
    $(this).find('.product-thumb img').wrap('<a href="' + $(this).find('.actions a:first').attr('href') +'">');        
});
于 2015-04-10T16:57:51.447 回答