Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/372.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 指定参数和定义函数,jQuery_Javascript_Php_Jquery_Arrays - Fatal编程技术网

Javascript 指定参数和定义函数,jQuery

Javascript 指定参数和定义函数,jQuery,javascript,php,jquery,arrays,Javascript,Php,Jquery,Arrays,现在我有了密码: $.get("test.php", function(($cars){ $cars = cars; }, "json"); $(function(cars){ $.each(cars, function(i, startList){ if(iNLarr[i]){ iNLarr[i](startList.name); } }); }); 好的,我将$cars数组赋值给cars变量。基本上$cars

现在我有了密码:

$.get("test.php", function(($cars){
    $cars = cars;
}, "json");

$(function(cars){
    $.each(cars, function(i, startList){
        if(iNLarr[i]){
            iNLarr[i](startList.name);
        }
    });
});
好的,我将$cars数组赋值给cars变量。基本上$cars是一个对象数组,每个对象都是一个关联数组。我需要能够处理数组,所以我首先将它分配给变量。下一个函数使用汽车中的信息,并将其显示在html元素中。iNLarr是一个函数数组,每个函数都会更改名称,将html元素替换为从$cars对象数组检索到的名称

无论何时运行该函数,都会得到一些返回值,例如array.prototype.map不是有效的参数。我想,startList是一个虚构的参数,我希望它能被分配给对象,这样我就可以检索每个名称,但我猜情况并非如此,有人能帮我吗


我不确定我是否正确定义了函数。

使用以下代码完成任务:

$.get("test.php", function(($cars){
    cars = $cars;
    $.each(cars, function(i, startList){
        if(iNLarr[i]){
            iNLarr[i](startList.name);
        }
    });
}, "json");

如果需要任何解释,请告诉我。

目前这两个函数都没有意义。第一行:

$cars = cars;
将使用未定义的变量
cars
覆盖ajax调用的结果。然后你实际上就不用
$cars
做任何进一步的事情了-如果你不使用它,给它一个值就没有意义了

第二个函数是,这意味着
cars
参数将被设置为reference
jQuery
。也就是说,当调用
$()
jQuery()
并将函数作为参数传递时:

$(function() { /* some code */ });
…DOM就绪时将调用该函数

您应该在第一个函数中完成ajax调用所需的所有处理,如下所示:

$.get("test.php", function(cars){
    $.each(cars, function(i, startList){
        if(iNLarr[i]){
            iNLarr[i](startList.name);
        }
    });
}, "json");
您可能需要将上述内容包装在文档就绪处理程序中,或将其放入正文末尾的脚本中。

表示法用于在文档就绪/加载时执行代码

您的
$.get
是在脚本加载时完成的(begore document loaded),但响应可能在文档加载后出现

$(function() {
    $.get("test.php", function(cars) {
        $.each(cars, function(i, startList) {
            if(iNLarr[i]){
                iNLarr[i](startList.name);
            }
        });
    }, "json");
});

这可能会对您有所帮助。

这只是问题的一半,因为以下代码带有
$。each()
可能在
$.get()
完成之前尝试使用
cars
变量。该代码需要移到
$.get()中
完成回调并重新构造一点。然后他必须添加一个回调函数,当ajax请求成功完成时将调用该函数。已经有一个回调,只需将第二段代码移到其中,并从
$(函数(cars))中取出
cars
{
。谢谢你的帮助。很快,我甚至没有阅读他的完整问题。我是个新手,但我会认为它只是按顺序加载了函数。回调函数到底是什么。所以我必须去文档。(准备好)取而代之的是,这行得通吗,我对编码真的很陌生。@downvoters在对一个问题进行downvoting时有一些写原因的习惯,这是一个正确答案,但我已经有了类似的代码,我需要做的是将它分开,这样我就可以使用从php返回的数组。这将是一个在加载时工作的函数,但之后我想能够以类似的方式更改html内容,因此我将php放在一个可以使用的变量中。这不是100%理想,因为它甚至会等待启动ajax调用,直到加载文档,这可能比立即启动要慢,并且只有在文档准备好时才处理结果。@Tom,那么您必须将将
cars
数组放入回调函数中,或者从那里调用函数并将
cars
数据传递给它。你不能按原来的方式进行操作。有关原因的更多详细信息,请参阅。@jfriend00,这真的很有帮助,我仍然不完全清楚,但基本思想是我设置了I make any函数在代码中引用回调。这可能会起作用,但我确实需要处理从ajax请求中接收到的数据。比如说,我想对数组中的对象进行过滤或排序,然后将它们放在屏幕上。从某种意义上讲,只要我能以某种方式将ajax数据存储在变量中,这应该不会是一个问题。我有一个想法,我会给出这是一次尝试。我之前说过,我需要能够在加载页面之后使用从ajax调用中获得的代码,所以我尝试将其分离。