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
参数将被设置为referencejQuery
。也就是说,当调用$()
或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调用中获得的代码,所以我尝试将其分离。