Instead of $ (this) .data you need to use $ (this.element) .data
JSFiddle
$('.autocomplete').autocomplete({
source:function(request, callback){
console.log($(this.element).data("link"));
jQuery.get($(this.element).data('link'), {
typedValue: request.term
}, function (data) {
response(data);
}, 'json');
},
select: function(event, ui) {
console.log(event.target.name);
console.log($(this).prop('name'));
console.log($(event.target).data("link"));
}
})