使用类更改特定内部的Text

时间:2018-02-09 17:28:41

标签: javascript php jquery ajax

我有表,表中的数据是用php动态填充的。 当我按下按钮时,将启动ajax请求。在我做了我想用ajax做的事情之后,我得到了一个产品的新名称。我想替换ajax附带的这个新数据,<td>获得“替换”类,并且是我按下的按钮中最接近的<td>

但我无法做到。

       @foreach($products as $key => $product)
               <tr>
                     <td>aaa</td>
                     <td>bbb</td>
                     <td class="status">{{ $product->name }}</td>
                     <td>
                            <button type="button" class="save btn btn-danger" product-id="{{$product->id}}">
                                   <span>Save</span>
                             </button>
                     </td>
               </tr>
       @endforeach

我尝试了很多这样的事情:

    $(".save").on('click', function () {
         all my ajax here... ,

         success: function (data) {
             $(this).closest(".status").html(data); // I tried this
             $(this).closest("td.status").html(data); // or this
             $(this).closest("tr").find(".status").html(data); // or this
             $(this).closest("tr").find(".status").html(data); // or this
        },
    });

以及其他一些事情,但根本没有任何效果。 数据只包含一个简单的字符串。

1 个答案:

答案 0 :(得分:4)

你的ajax回调中的

this是jqXhr对象,除非你用上下文改变它 然后,您可以使用closestfind来选择字段

$(".save").on('click', function () {
     all my ajax here... ,
     context: this,
     success: function (data) {
         $(this).closest("tr").find(".replace").html(data); // or this
    }
});