我试图让保存按钮显示在我按保存按钮的当前行上。目前,它工作正常,除非我有相同的产品,但没有该产品的选项。

我努力了:

$(this).parent('tr');


但这也无济于事

HTML:

<table class="table table-bordered table-responsive">
  <tr class="product-1" prod-id="1" qty="1">
    <form action="#" class="edit-cart-form"></form>
    <td>ID</td>
    <td>Test Product</td>
    <td>$20.00</td>
    <td>
      <div class="add-qty">
        <i class="fa fa-minus minus-qty"></i>
        <input type="text" value="1" />
        <i class="fa fa-plus plus-qty"></i>
        <br>
        <a href="javascript:void(0);" class="save">save</a>
      </div>
    </td>
    <td>Remove</td>
  </tr>

  <tr class="product-1" prod-id="2" qty="1">
    <form action="#" class="edit-cart-form"></form>
    <td>ID</td>
    <td>Test Product</td>
    <td>$20.00</td>
    <td>
      <div class="add-qty">
        <i class="fa fa-minus minus-qty"></i>
        <input type="text" value="1" />
        <i class="fa fa-plus plus-qty"></i>
        <br>
        <a href="javascript:void(0);" class="save">save</a>
      </div>
    </td>
    <td>Remove</td>
  </tr>
</table>


JS:

$('.plus-qty').click(function() {
  var target = '.product-' + $(this).closest('tr').attr('prod-id') + ' .save';
  $(target).show();
});

$('.minus-qty').click(function() {
  var target = '.product-1' + $(this).closest('tr').attr('prod-id') + ' .save';
  $(target).show();
});


JSFiddle Demo

最佳答案

我认为您的目标字符串过于复杂,这是导致问题的原因。

以下几行符合我的预期

$('.plus-qty, .minus-qty').click(function() {
  $(this).closest('tr').find('.save').show();
});

09-17 14:17