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