当前位置: 首页 > 知识库问答 >
问题:

从AJAX请求获取数组值[重复]

束建章
2023-03-14

我有一个脚本,它读取一个JSON文件,然后用每个元素的name属性填充数组。

HTML

<script src="https://code.jquery.com/jquery-2.2.4.min.js"></script>
<script>
var a = [];

var myMethod = function(){
    $.ajax({
        url : "numbers.json",
        dataType : "json",
        success : function(data){
            for(i in data){
                a.push(data[i].name);
            }
        }
    });
}

myMethod();
console.log(a[2]); // console.log() returns "undefined"
</script>

JSON

[
    {"name" : "One"},
    {"name" : "Two"},
    {"name" : "Three"},
    {"name" : "Four"},
    {"name" : "Five"}
]

我无法访问此数组的特定索引。控制台日志总是返回未定义的。我尝试在我的ajax调用之后添加.then(),但它也不起作用。

共有2个答案

童铭晨
2023-03-14

您的console.log(A[2]);Ajax完成处理之前运行,由于Ajax的异步性质,这就是它返回undefined的原因。将console.log放入ajax成功。请参阅工作代码段:

null

var a = [];

var myMethod = function(){
    $.ajax({
        url : "https://api.myjson.com/bins/b4bnr",
        dataType : "json",
        success : function(data){
            for(i in data){
                a.push(data[i].name);   
            }
           console.log(a[2]);
        }
    });
}

myMethod();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
孔弘盛
2023-03-14

你会想做这样的事情:

<script src="https://code.jquery.com/jquery-2.2.4.min.js"></script>
<script>
var a = [];

var myMethod = function() {
    $.ajax({
        url: "numbers.json",
        dataType: "json",
        success: function(data) {
            for (i in data) {
                a.push(data[i].name);
            }
            handleData();
        }
    });
}

function handleData() {
    console.log(a[2]);
}

myMethod();
</script>

Javascript不会等待您的所有代码逐行运行,因此对于异步调用,您需要一个单独的函数来处理数据或在success回调中处理数据。另一个函数会更干净,但这取决于您想对数据做什么。

 类似资料:
  • 问题内容: 这是我在index.html上的代码: 我如何编程test.php以获取在AJAX API中发送的“数据”? 问题答案: 您在这里问一个非常基本的问题。您首先应该阅读一些Ajax教程。只是为了帮助您(假设您知道发送数据的GET和POST方法),数据中的“数据”:函数(数据)中的“数据”与“数据”不同。为了清楚起见,您应该为它们命名不同,如下所示: 这清楚地表明,一个是要通过POST参数

  • 我有以下数组 我想从这个数组中得到唯一的值。所以我希望我的结果是这样的 我使用了数组唯一函数,但无法得到结果 如果我有两个索引,这是有效的,但是对于多个索引呢?

  • 问题内容: 我有以下django模板(将http:// IP / admin / start /分配给一个名为view的假设视图): 是视图中引用的Django模型的。每当单击“开始”提交输入时,我都希望“开始”视图在返回渲染页面之前使用函数中的数据。如何将POST(在本例中为隐藏输入)中发布的信息收集到Python变量中? 问题答案: 另外,你的隐藏字段还需要一个可靠的名称,然后是一个值: 然后

  • 客户端代码: 服务器代码: 问题是我的用户名和密码总是空的。 我还尝试使用: 和 打印内容时,我有: 编辑: 我添加了json。转储和使用请求。获取_json(),它就成功了

  • 如果条件匹配,我想从多数组中获取变量的特定值。 打印阵列时: 给出如下数组: 如果ID与21匹配,我正在尝试获取客户号码

  • 问题内容: 我的页面如下: 和一个php文件来处理ajax请求; 但是,当我单击时,我得到的不是array [0]。我怎样才能解决这个问题?? 提前致谢… 问题答案: 您不能从js访问数组(php数组)try 和js