4
4

4 回答 4

4

您可以抓取图像,清除锚点,然后将图像放回原处:

$j('#gkComponent .productdetails-view .product-related-products .product-field-type-R span.product-field-display a').each(function() {
    var $this = $(this);
    var img = $this.find('img').detach();
    $this.empty().append(img);
});

或者通过 DOM 从锚点中删除所有文本节点,保持img元素完整:

$j('#gkComponent .productdetails-view .product-related-products .product-field-type-R span.product-field-display a').each(function() {
    var node, nextNode;

    node = this.firstChild;
    while (node) {
        nextNode = node.nextSibling;
        if (node.nodeType === 3) { // 3 = text node
            node.parentNode.removeChild(node);
        }
        node = nextNode;
    }
});
于 2013-05-04T17:24:22.957 回答
1

由于 jQuery 不能很好地处理文本节点,一种方法是在纯 JS 中处理它:

$('span.product-field-display a').each(function() {
  var nodes = this.childNodes;

  for (var i = nodes.length - 1; i >= 0; --i) {
    if (nodes[i].nodeType == 3) {
      this.removeChild(nodes[i]);
    }
  }
});
于 2013-05-04T17:40:12.067 回答
1

你可以试试这个

$('.product-field-display a').filter(function(){
    return $(this).html($(this).find('img'));
});

演示。

于 2013-05-04T17:33:35.613 回答
1

试试这个对我有用

$('#AddToWishList').click(function(e) {
  e.preventDefault();
  var dt ='Product_ID=1';
  var $this = $(this);
  var img = new Image();
  img.src="images/progress.gif";
  $this.empty().append(img);
  $.post('ajax/add_wish.php', dt, function(data) {	
    $this.empty().append('<i class="fa fa-star"></i>Wishlist');
    $this.attr('class','btn btn-block btn-primary');
    $this.attr('disabled','disabled');				
  });
});
<a class="btn btn-block btn-default" href="JavaScript:;;" id="AddToWishList"><i class="fa fa-star"></i>Wishlist</a>

于 2016-06-12T16:15:02.950 回答