jQuery自动完成结果不断抛出错误

jQuery自动完成结果不断抛出错误,jquery,autocomplete,Jquery,Autocomplete,从昨天开始,我就一直在努力解决这个问题,但我不明白为什么我总是收到错误消息“…不是一个函数”。下面是HTML代码 <td> <input class="itemAC" name="Item[0][name]" id="Item_0_name" type="text" value="" /> <input class="itemId" name="TransactionDetail[0][itemId]" id="TransactionDetail_0_itemId"

从昨天开始,我就一直在努力解决这个问题,但我不明白为什么我总是收到错误消息“…不是一个函数”。下面是HTML代码

<td>
<input class="itemAC" name="Item[0][name]" id="Item_0_name" type="text" value="" />
<input class="itemId" name="TransactionDetail[0][itemId]" id="TransactionDetail_0_itemId" type="hidden" value="" />
</td>
我得到了“this.next不是函数”错误,我尝试了$(this.next,$(“#”+this.id)。然后我得到了相同的错误消息,我做错了什么

编辑: 好的,所以我尝试删除几乎所有的HTML和JS代码,以便HTML正文包含:

它应该是
$(this)
而不是
this


当使用
时,this
指的是DOM对象,而使用
$(this)
指的是具有
next()
方法的jQuery对象。因为您试图使用DOM对象,所以它不知道该方法是什么。

我认为这不是范围问题,更多的是JQuery使用问题
确实引用Dom对象,不允许您使用
next()
,但是当使用
$(this.next()
时,要正确访问目标对象的id属性,您需要使用适当的jquery语法:
$(this.next().attr(“id”)

这应该适合您:

$(".itemAC").autocomplete("/inventory2/index.php?r=item/AjaxLookup",{
'minChars':2,'delay':500,'matchCase':false,'max':10}
).result(function(event,item){alert($(this).next().attr("id"))}
);

如果您希望为第二个输入设置值,请使用.val()方法来完成此操作。

基本上,我要做的是获取下一个输入字段并将项目id作为值。我尝试了$(this)。接下来,甚至尝试了一些荒谬的操作,如$(“#”+this.id)。接下来,但两者都给了我相同的错误信息我只是想知道这是否是一个范围问题?
$(".itemAC").autocomplete("/inventory2/index.php?r=item/AjaxLookup",{
'minChars':2,'delay':500,'matchCase':false,'max':10}
).result(function(event,item){alert($(this).next().attr("id"))}
);