谁能告诉我自己做错了什么?我终于明白了如何遍历JSON结果并在DIV中显示,但现在我尝试将其添加到自动填充搜索建议的jquery代码中。
$(document).ready(function () {
var tagsArray = []
$.getJSON("https://api.deckbrew.com/mtg/cards?color=red&color=blue&rarity=rare&name=fire", function (result) {
$.each(result, function (i, field) {
//$("div").append(field.name + "<br>" + field.url + "<br> " + field.id + "<br> " + field.set_url + "<br>");
tagsArray.push(field.name);
});
$(function () {
var availableTags = tagsArray;
$("#tags").autocomplete({
source: availableTags
});
});
});
});
$(function () {
var availableTags = tagsArray;
$("#tags").autocomplete({
source: availableTags
});
});
答案 0 :(得分:1)
您的$(function() {});
创建了closure,使其超出tagsArray
变量的范围。你最好的选择就是在你的上一部分中删除它:
$.getJSON("", function (result) {
$.each(result, function () {}); // Same as you have it
$('#tags').autocomplete({
source: tagsArray
});
});
你不需要你的下半部分。
答案 1 :(得分:0)
经验法则:保持简单,不要使用$(function(){});或者其他奇特的东西,如果你不是真的了解它们。
在这里为你快速解决。 http://jsfiddle.net/9fztL/4/
$(document).ready(function(){
var tagsArray = []
$.getJSON("https://api.deckbrew.com/mtg/cards?color=red&color=blue&rarity=rare&name=fire",function(result){
$.each(result, function(i, field){
$("div").append(field.name + "<br>" + field.url + "<br> "+ field.id + "<br> "+ field.set_url + "<br>");
tagsArray.push(field.name);
});
$( "#tags" ).autocomplete({
source: tagsArray
});
});
});