我正在使用 jqueryui 自动完成功能,想知道是否有一种通用方法可以使用 $.ajax() 访问 Json 对象项。在下面的示例中,文本/值对是 item.Title 和 item.AlbumId,它工作正常。但我想知道是否有办法像 item[0]、item[1] 一样访问它。我尝试过,但不起作用。
// jqueryui autocomplete configuration
$(element).autocomplete({
minLength: minimumTextLength,
source: function (req, response) {
// call $.ajax()
$.ajax({
url: filterUrl,
type: "POST",
dataType: "json",
data: { term: textbox.val() },
success: function (data) {
response($.map(data, function (item) {
return { label: item.Title, value: item.AlbumId };
}));
}
});
}
}); // end of autocomplete()
最佳答案
您可以使用 Object.keys
间接执行此操作。这样你就可以引用item[keys[index]]
:
response($.map(data, function (item) {
var keys = Object.keys(item);
return { label: item[keys[0]], value: item[keys[1]] };
}));
请注意,Object.keys 是 only supported by modern browsers (IE9+)。尽管一如既往,您可以 polyfill如果需要的话。
关于javascript - 使用 Jquery $.ajax() 以通用方式访问 json 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19529620/