【发布时间】:2017-04-24 10:17:49
【问题描述】:
我在将我的 for 循环索引变量传递给 ajax 成功函数时遇到问题。我知道这是重复的,但我已经尝试了其他几种我发现的解决方案,但似乎没有一个对我有用..
无论如何,我这里有这段代码:
embeds = document.getElementsByClassName('kcode');
for (i = 0, l = embeds.length; i < l; i++) {
if (typeof embeds[i] != 'undefined' && typeof embeds[i].classList != 'undefined' && !embeds[i].classList.contains('filled')) {
embeds[i].classList.add('filled');
var embed = window.intext[embeds[i].getAttribute('data-k-kid')];
if (embed) {
embeds[i].classList.add('embed');
switch (embed.type.toLowerCase()) {
case 'sport_plugin':
if(sportData.selectedType.name == "Ranking Table") {
(function(i) {
jQuery.ajax({
url: url,
dataType: 'json',
success: function(response) {
var content = '';
if (table.name == "Western Conference" || table.name == "Eastern Conference") {
content+= '</div>';
embeds[i].innerHTML = content;
}
}
});
})(i);
}
break;
default:
embeds[i].style.display = "none";
}
embeds[i].classList.remove('kcode');
i--;
}
}
}
现在,我要实现的目标 -
我想将 embeds 变量和 for 循环索引的 i 变量传递到我的 ajax 响应中,因此我可以在响应完成后设置 embeds[i] 的 innerhtml。我尝试包装 ajax function in (function (i) {})(i); 闭包,但它没有帮助。有任何想法吗?谢谢!
【问题讨论】:
标签: javascript jquery ajax variables scope