我有一个图是一个JSON的结果。 我需要指定它自动完成。 但是好像我必须做一个肮脏的工作。 有没有清洁的方式做到这一点?
http://jsfiddle.net/7dLRh/
这是非常脏的部分代码:
$( "#autocomplete1" ).autocomplete({
source: function(request, response) {
var re = $.ui.autocomplete.escapeRegex(request.term);
var matcher = new RegExp( "n*" + re + "n*", "i");
var arrayKey = $.map(v1.data, function (itemKey, itemValue) {
return itemKey
});
var arrayValue = $.map(v1.data, function (itemKey, itemValue) {
return itemValue
});
var key = $.grep( arrayKey, function(item,index){
return matcher.test(item);
});
var value = $.grep( arrayValue, function(item,index){
return matcher.test(item);
});
var s = "{ ";
for (var i =0; i< key.length; i++) {
if (i < value.length) {
s+= "\"" + value[i] + "\":\"" + key[i] + "\",";
}
}
s = s.substring(0, s.length-1);
s += "}";
var jsonObject = jQuery.parseJSON(s);
response($.map(jsonObject, function (itemKey, itemValue) {
return {
label: itemKey,
value: itemValue
};
}));
}
});