Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/405.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 更改foreach循环内的按钮文本_Javascript_Php_Jquery - Fatal编程技术网

Javascript 更改foreach循环内的按钮文本

Javascript 更改foreach循环内的按钮文本,javascript,php,jquery,Javascript,Php,Jquery,我有一个按钮,当我点击这个按钮时,它应该会改变它的文本。它在foreach循环中。但问题是,当我点击那个按钮时,第一个按钮文本会发生变化。我想更改我单击的特定按钮文本..如何更改 前端部件 @foreach($products as $product) <button onclick="this.disabled=true; quoteAdd('{!!$product->id!!}')" id="inquireButton" class="btn btn-dange

我有一个按钮,当我点击这个按钮时,它应该会改变它的文本。它在foreach循环中。但问题是,当我点击那个按钮时,第一个按钮文本会发生变化。我想更改我单击的特定按钮文本..如何更改

前端部件

@foreach($products as $product) 
    <button onclick="this.disabled=true;    quoteAdd('{!!$product->id!!}')" id="inquireButton"  class="btn btn-danger ">Inquire</button>
@endforeach
function quoteAdd(productId)
{
    $("#inquireButton").html('Save');
    //    other code ..
}

您需要使用
this
关键字将按钮引用传递到
quotead
方法,如下所示

PHP

@foreach($products as $product) 
    <button onclick="this.disabled=true; quoteAdd('{!!$product->id!!}', this)" id="inquireButton"  class="btn btn-danger ">Inquire</button>
@endforeach

FYI
id
对于每个元素都应该是唯一的。

HTML中的
id
属性的值应该是唯一的,因此基本上你所做的是错误的(你不应该在循环中有固定的id)

无论此问题如何,您都可以执行以下操作:

//前端部件

 @foreach($products as $product) 
    <button onclick="this.disabled=true; quoteAdd(this)" id="inquireButton_{!!$product->id!!}"  class="btn btn-danger ">Inquire</button>
 @endforeach
 @foreach($products as $product) 
    <button onclick="this.disabled=true; quoteAdd(this)" id="inquireButton_{!!$product->id!!}"  class="btn btn-danger ">Inquire</button>
 @endforeach
function quoteAdd(el)
{
    $(el).html('Save');
    // other code ..
}