jQuery AutoComplete-如何访问返回值?

时间:2019-03-03 16:36:20

标签: javascript jquery autocomplete

我正在尝试显示返回的JSON中的值。我要么获得每个项目的[对象对象],要么一无所获。

有人知道如何显示返回值吗?

git config --global user.name "John Doe"
git config --global user.email johndoe@example.com

我的JSON看起来像这样:

  

[{{name:“ item1”,“ id”:“ 1”},{name:“ item2”,“ id”:“ 2”}等。]

1 个答案:

答案 0 :(得分:1)

这是因为您正在映射data(因此您希望该函数针对数据数组的每个元素运行),但是您还使用数据来设置名称和ID。

因此数据仍然[{name:"item1","id":"1"},{name:"item2","id":"2"},etc..]进入函数,但是event应该从数组中获取当前循环的项目。

尝试类似方法,但不要忘记doc

$('#search-input').autocomplete({
    source: function (request, response) {
        $.getJSON("api/autocomplete.php?keyword=" + $("#search-input").val(), function (data) {
            console.log(data);
            response($.map(data, function (elementOfArray, indexInArray ) {
                return {
                    label: elementOfArray.name,
                    value: elementOfArray.id
                };
            }));
        });
    }
});

此外,ES6实现map,最好在可能的情况下使用no-jquery函数:

response(data.map((elementOfArray, indexInArray) => {
    return {
        label: elementOfArray.name,
        value: elementOfArray.id
    };
}));

不带ajax的代码段示例

data = [{name:"item1","id":"1"},{name:"item2","id":"2"}]

console.log(data.map((item, idx) => {
   return {
      label: item.name,
      value: item.id
   };
}));