Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/16.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
Jquery 错误:语法错误,无法识别的表达式:“商品”U类型+;i+&引用;_Jquery - Fatal编程技术网

Jquery 错误:语法错误,无法识别的表达式:“商品”U类型+;i+&引用;

Jquery 错误:语法错误,无法识别的表达式:“商品”U类型+;i+&引用;,jquery,Jquery,如何解决以下问题 错误:语法错误,无法识别的表达式:#商品_类型“+i+” 抛出新错误(“语法错误,无法识别的表达式:”+a) 从以下脚本: $("#stock_request_table").on("change", ".commodity_name" + i, function () { var commodity_id = this.value; $.ajax({ type: "GET&

如何解决以下问题

错误:语法错误,无法识别的表达式:#商品_类型“+i+”

抛出新错误(“语法错误,无法识别的表达式:”+a)

从以下脚本:

$("#stock_request_table").on("change", ".commodity_name" + i, function () {
    var commodity_id = this.value;

    $.ajax({
        type: "GET",
        url: "<?php echo base_url(); ?>reports/get_commodity_details/" + commodity_id + "/",
        dataType: "json",
        success: function (response) {
            $('#commodity_type"+i+"').val(response[0].commodity_type);

        },
        error: function (data) {

        }
    });
});
$(“#库存#请求#表”)。关于(“更改”,“商品名称”+i,函数(){
var商品id=此值;
$.ajax({
键入:“获取”,
url:“报告/获取商品详细信息/”+商品id+“/”,
数据类型:“json”,
成功:功能(响应){
$(“#商品类型”+i+”).val(响应[0]。商品类型);
},
错误:函数(数据){
}
});
});

您实际上是将字符串
#商品类型“+i+”
作为CSS选择器传递到jQuery中。尾随的
+
使该选择器无效,但无论如何,您几乎肯定不希望
i
实际出现在字符串中;相反,我认为你想要它的价值

假设您知道在收到ajax响应之前,
i
不会改变,您只需调整引号:

$('#commodity_type' + i).val(response[0].commodity_type);
//                ^---- string ends there, and we append i
但是,如果此代码位于
i
可能更改的循环中,则需要一个不会更改的值。您可以使用
函数#bind
获取一个:

success: function (index, response) {
    $('#commodity_type' + index).val(response[0].commodity_type);
}.bind(null, i)

注意末尾的
.bind(null,i)
Function#bind
返回一个函数,当调用该函数时,该函数将调用原始函数,并将
this
设置为第一个参数(我们不关心
this
,因此我只是传递
null
),然后传递
bind
的参数,然后是调用绑定函数的参数。因此,
.bind(null,i)
将在此时获取
i
的值,并在调用原始函数时将该值用作第一个参数。然后是jQuery给出的
success
函数的参数。

假设
i
是一个变量:
“#商品类型”+i+”
应该是
“#商品类型”+i