高级程序员,的JQuery/Ajax调用在for循环
是否有可能把( “XXXXX”)。HTML(数据)在for循环中,其中每次 “XXXX” 变量的变化?
我真的觉得我尝试了一切。我正在尝试使用来自每次URL更改的循环Ajax调用的JSONP数据填充HTML表格。每次都使用相同的回调函数,但显然,我会一直覆盖要发送到HTML表标记的数据,因为我无法找出动态更改这些变量的方法。
基本上,我想第一次调用回调函数,将数据存储在类似...
$("#p1_points").html(data_from_ajax_call)
第二次我想要它做的......
$("#p2_points").html(data_from_ajax_call)
我已经尝试过愚蠢的东西,像(在一个for循环)做...
$("#p" + i + "_points").html(data_from_ajax_call)
和各种有趣的东西,但它不接受任何种类的论点......那么,有什么想法?这是微不足道的,我只是过度思考和低于它睡觉?
在此先感谢您的帮助。
更新用于CLARITY
我的Ajax调用这个样子......
for (var i = 0; i < thisweeksraiders.length; i++){
$.ajax({
"url":"http://us.battle.net/api/wow/character/aerie-peak/" + thisweeksraiders[i] + "?jsonp=myCallback",
"type":"GET",
"data": { fields: "items, professions, talents, progression"},
"dataType":"jsonp",
"contentType":"application/json",
"jsonpCallback":"myCallback",
"success":function(data1){
}
})
}
和我的回调函数看起来像这样...
function myCallback(data1) {
//itemscounter += 1;
var hascloak = "No";
var possupgrades = 30;
var offhandequipped = false;
var tempupgrades = 0;
var tierequipped = 0;
for (var i = 0; i < gearlist.length; i++){
if (data1.items[(gearlist[i])].tooltipParams.upgrade)
tempupgrades += data1.items[(gearlist[i])].tooltipParams.upgrade.current;
}
for (var i = 0; i < tierlist.length; i++){
if(data1.items[(tierlist[i])].tooltipParams.set)
tierequipped += 1;
}
if (data1.items.offHand){
tempupgrades += data1.items.offHand.tooltipParams.upgrade.current;
offhandequipped = true;
}
if (offhandequipped)
possupgrades = 32;
if(data1.items[(gearlist[3])].quality == 5)
hascloak = "Yes";
$("#p1_cloak").html(hascloak);
$("#p1_tier").html(tierequipped + "/5");
$("#p1_achieve").html(data1.achievementPoints);
$("#p1_iLevelE").html(data1.items.averageItemLevelEquipped);
$("#p1_upgrades").html(tempupgrades + "/" + possupgrades);
var totalnormalkills = 0;
var totalheroickills = 0;
var furthestboss = null;
for (var i = 0; i < soobosslist.length; i++){
totalnormalkills += data1.progression.raids[31].bosses[i].normalKills;
totalheroickills += data1.progression.raids[31].bosses[i].heroicKills;
}
if (totalheroickills == 0){
for (var i = 14; i > 0; i--){
if (data1.progression.raids[31].bosses[i-1].normalKills > 0){
furthestboss = i + "N";
break;
}
}
}
else {
for (var i = 14; i > 0; i--){
if (data1.progression.raids[31].bosses[i-1].heroicKills > 0){
furthestboss = i + "H";
break;
}
}
}
$("#p1_normalkills").html(totalnormalkills);
$("#p1_heroickills").html(totalheroickills);
$("#p1_xp").html(furthestboss);
var classtemp;
var colortemp;
switch(data1.class){
case 1: classtemp = "Warrior"; colortemp = "#C79C6E"; break;
case 2: classtemp = "Paladin"; colortemp = "#F58CBA"; break;
case 3: classtemp = "Hunter"; colortemp = "#ABD473"; break;
case 4: classtemp = "Rogue"; colortemp = "#FFF569"; break;
case 5: classtemp = "Priest"; colortemp = "#FFFFFF"; break;
case 6: classtemp = "Death Knight"; colortemp = "#C41F3B"; break;
case 7: classtemp = "Shaman"; colortemp = "#0070DE"; break;
case 8: classtemp = "Mage"; colortemp = "#69CCF0"; break;
case 9: classtemp = "Warlock"; colortemp = "#9482C9"; break;
case 10: classtemp = "Monk"; colortemp = "#00FF96"; break;
case 11: classtemp = "Druid"; colortemp = "#FF7D0A"; break;
}
$("#p1_classspec").html("<font color=" + colortemp + "><b>" + data1.name + "</b></font><font size='-1' color=" + colortemp + "><em> (" + data1.talents[0].spec.name + ")</em></font>");
var profstemp = (data1.professions.primary[0].name + " & " + data1.professions.primary[1].name);
$("#p1_profs").html(profstemp);
}
所以,基本上,所有的#p1可以放在函数结尾处的东西,但是我想将它们全部更改为$ p2来填充表格中的下一行。该HTML应该是显而易见的,但在这里它是...
如果按照这个链接,你就会明白我要为(这是不使用for循环)。我只是想大幅减少我的代码。
http://www.mynextbit.com/Pages/Wreckedified/test2.html
一为帕特里克更多更新...
$(document).ready(function(){
for (var i = 0; i < thisweeksraiders.length; i++){
(function(index)
window.jsonpCallbacks["myCallback" + index] = function(data){
myCallback(data,index);
};
})(i);
$.ajax({
"url":"http://us.battle.net/api/wow/character/aerie-peak/" + thisweeksraiders[i] + "?jsonp=jsonpCallbacks.myCallback" + i,
"type":"GET",
"data": { fields: "items, professions, talents, progression"},
"dataType":"jsonp",
"contentType":"application/json",
"jsonpCallback":"jsonpCallbacks.myCallback"+i,
"success":function(data1){
}
})
}
});
不完全确定你的意思 - 你是每次重写表体还是追加新行? – Geezer68
我已经更新了更多信息Geezer68,也许这将澄清 – Bonedancer