$(这)在jquery自动完成的源代码中-为什么';这不管用,但变通方法管用吗?

$(这)在jquery自动完成的源代码中-为什么';这不管用,但变通方法管用吗?,jquery,autocomplete,Jquery,Autocomplete,我在使用以下代码时遇到了一些问题$(这)似乎没有定义 $('.version-autocomplete').autocomplete({ source: '/ajax/versions.json?procedure_name=' + $(this).attr('procedure_name') }) 我发现这是有效的,我想知道为什么。有人知道吗 $('.version-autocomplete').each(function(i, el) { $(el).autoc

我在使用以下代码时遇到了一些问题$(这)似乎没有定义

$('.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')
    })  
})  

在第二个版本中,每个回调都在
中,但在第一个版本中,
$(this)
会立即计算,并且不会指向所需的元素。您也可以在每个
中正确使用此,方法如下:

$('.version-autocomplete').each(function() {      
    $(el).autocomplete({
        source: '/ajax/versions.json?procedure_name=' + $(this).attr('procedure_name')
    });
});