0

我在使用以下代码时遇到了一些问题。$(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')
    })  
})  
4

1 回答 1

1

在第二个版本中,您处于each回调中,但在第一个版本中,$(this)立即评估并且不指向您想要的元素。顺便说一句,您也可以this在 中正确使用each

$('.version-autocomplete').each(function() {      
    $(el).autocomplete({
        source: '/ajax/versions.json?procedure_name=' + $(this).attr('procedure_name')
    });
});
于 2012-07-04T23:44:47.707 回答