我有一个设置,其中包含类似数据的div(但排名不同)需要在启动时动态加载数据。为此,我通过AJAX加载一个PHP页面,并传递一个参数,以便它知道要查询的级别。但是,为了在start上加载,我需要连续调用4次相同的函数。这个语法正确吗?或者,在没有调用相同函数的大列表的情况下,是否有一种方法来编写此函数?
$(document).ready(function(){
getStuff(1);
getStuff(2);
getStuff(3);
getStuff(4);
});
function getStuff(type) {
$.ajax({
type: "GET"
..........
success: function(html) {
$('[data-id="' + type + '"]').html(html);
}
});
}
<div id="rank1" data-id="1"></div>
<div id="rank2" data-id="2"></div>
<div id="rank3" data-id="3"></div>
<div id="rank4" data-id="4"></div>发布于 2014-08-19 14:32:29
$(document).ready(function(){
// edit as per taseenb@ comment for performance
var size = $("div[id^=rank]").size()
for(var i = 1; i <= size; i++){
getStuff(i);
}
});发布于 2014-08-19 14:32:26
当然,有一种方法,它被称为循环:)
$(document).ready(function(){
for(i = 1; i < 5; i++){
getStuff(i);
}
});发布于 2014-08-19 14:33:22
为什么不让getStuff接受一个数组并在一个循环中调用AJAX呢?
另外,需要考虑的是: AJAX是异步的(正如名称所暗示的那样),因此不能保证这些调用将以相同的顺序返回。如果您需要它们按顺序发生,则应该递归地进行调用--从上一次调用的成功函数中进行每个后续调用。这样,您就可以保证上一次调用在进行下一次调用之前已经完成。
https://stackoverflow.com/questions/25386043
复制相似问题