我在使用以下代码时遇到了一些麻烦。 $(this)似乎未定义。
$('.version-autocomplete').autocomplete({
source: '/ajax/versions.json?procedure_name=' + $(this).attr('procedure_name')
})
我发现这有效,我想知道为什么会这样。有人知道吗?
$('.version-autocomplete').each(function(i, el) {
$(el).autocomplete({
source : '/ajax/versions.json?procedure_name=' + $(el).attr('procedure_name')
})
})
答案 0 :(得分:1)
在第二个版本中,您处于each
回调中,但在第一个版本中,$(this)
会立即进行评估,并且不会指向您想要的元素。顺便说一句,您也可以在this
中正确使用each
:
$('.version-autocomplete').each(function() {
$(el).autocomplete({
source: '/ajax/versions.json?procedure_name=' + $(this).attr('procedure_name')
});
});