Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 结合到JS代码,我不确定是否得到了所需的变量_Javascript_Jquery - Fatal编程技术网

Javascript 结合到JS代码,我不确定是否得到了所需的变量

Javascript 结合到JS代码,我不确定是否得到了所需的变量,javascript,jquery,Javascript,Jquery,谁能告诉我我做错了什么?我终于明白了如何循环处理JSON结果并在DIV中显示,但现在我尝试将其添加到自动完成搜索建议的jquery代码中 $(文档).ready(函数(){ var tagsArray=[] $.getJSON(“https://api.deckbrew.com/mtg/cards?color=red&color=blue&rarity=rare&name=fire,函数(结果){ $.each(结果、函数(i、字段){ //$(“div”).append(field.name

谁能告诉我我做错了什么?我终于明白了如何循环处理JSON结果并在DIV中显示,但现在我尝试将其添加到自动完成搜索建议的jquery代码中

$(文档).ready(函数(){
var tagsArray=[]
$.getJSON(“https://api.deckbrew.com/mtg/cards?color=red&color=blue&rarity=rare&name=fire,函数(结果){
$.each(结果、函数(i、字段){
//$(“div”).append(field.name+”
“+field.url+”
“+field.id+”
“+field.set\u url+”
”); tagsArray.push(字段名); }); $(函数(){ var availableTags=tagsArray; $(“#标记”).autocomplete({ 资料来源:availableTags }); }); }); }); $(函数(){ var availableTags=tagsArray; $(“#标记”).autocomplete({ 资料来源:availableTags }); });
您的
$(function(){})
创建一个将其从
tagsArray
变量范围之外的变量。你最好的办法是在你的最上面部分去掉它,如下所示:

$.getJSON("", function (result) {
    $.each(result, function () {}); // Same as you have it

    $('#tags').autocomplete({
        source: tagsArray
    });
});

你不需要你的下半部分来做这件事。

经验法则:保持简单,不要使用$(function(){});或者其他你不了解的新奇事物

在这里为你做了一个快速修复

$(文档).ready(函数(){
var tagsArray=[]
$.getJSON(“https://api.deckbrew.com/mtg/cards?color=red&color=blue&rarity=rare&name=fire,函数(结果){
$.each(结果、函数(i、字段){
$(“div”).append(field.name+”
“+field.url+”
“+field.id+”
“+field.set\u url+”
”); tagsArray.push(字段名); }); $(“#标记”).autocomplete({ 资料来源:tagsArray }); }); });
看起来我们正在用
$(function(){…})
包装代码,但并不真正理解原因。
$.getJSON("", function (result) {
    $.each(result, function () {}); // Same as you have it

    $('#tags').autocomplete({
        source: tagsArray
    });
});
$(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
        });  
    });
});