Jquery split()不是函数?

时间:2015-07-11 10:37:11

标签: jquery split

根本不确定为什么这不起作用。

var jimmy = $.get("info.txt");
jimmy = jimmy.split("\n");

为什么必须这样:

$.get("info.txt", function(jimmy) {
    jimmy = jimmy.split("\n");
});

第二种方式很好,但是如果我能够以第一种方式做到这一点会让事情变得更容易,而且我不确定为什么它无法完成。它与php非常不同。

3 个答案:

答案 0 :(得分:2)

$.get是一个异步函数,它意味着它不会立即返回结果。您需要为它提供一个“回调”函数,该函数将在AJAX GET请求完成后运行。

答案 1 :(得分:2)

在开发者工具中查看:

var jimmy = $.get("info.txt"); console.log(jimmy);

你会看到jimmy会有关于这个$ .get正在做什么以及响应将会是什么的javascript信息(回调)。这是您想要的更多信息,您只需要响应数据。 第一个选项的另一个问题是第二行已经在响应返回之前执行,因为$ .get是异步的。

这就是第二种选择正在发挥作用的原因。只有在加载info.txt时,它才会执行get函数内部的内容(回调)。只有这样才能读取信息。

为了让它成为全球性的,你会喜欢这样。

var sjors = '';
$.get("info.txt", function(jimmy) {
    sjors = jimmy.split("\n");
});

在函数外部创建全局变量。现在,sjors将是一个全局变量,内容为jimmy。

答案 2 :(得分:0)

当然,请求需要时间,因此不会立即检索。

你能做的是

$.get("info.txt", function(jimmy) {
    window.jimmy = jimmy.split("\n");
});

然后可以jimmy

访问它