Javascript AJAX : 节点作用域
Javascript AJAX : node scoping
我写了这段 JS 代码:
var abils = document.getElementsByName('aggiunta_abil');
for (let i = 0; i < abils.length; i++) {
xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
alert(abils[i].parentNode.parentNode.innerHTML);
if (xhttp.readyState == 4 || status == 200) {
abils[i].parentNode.parentNode.innerHTML = this.responseText;
}
}
var url = 'my url';
if(abils[i].value != '') url = url + 'id_abil' + '=' + abils[i].value + '&';
xhttp.open('GET', url, true);
xhttp.send();
}
}
我的问题是警报标记正确地标记了节点的 innerHTML,但在它之后的 2 行告诉我未定义 abils[i]。即使我删除了 if 子句,只保留 2 条指令一条接一条,也没有任何变化:警报继续运行良好,但 abils[i].parentNode.parentNode.innerHTML = this.responseText;
没有。
我也尝试使用 jquery for ajax ,但没有任何变化:在成功函数中它说我没有定义 abils[i] 。
我不知道该怎么办,请帮帮我。
在你的for循环中,复制第一行的“i”作为,
设j=i;
然后,不使用“i”,而是使用“j”来访问 element.see(如果有帮助的话)
我写了这段 JS 代码:
var abils = document.getElementsByName('aggiunta_abil');
for (let i = 0; i < abils.length; i++) {
xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
alert(abils[i].parentNode.parentNode.innerHTML);
if (xhttp.readyState == 4 || status == 200) {
abils[i].parentNode.parentNode.innerHTML = this.responseText;
}
}
var url = 'my url';
if(abils[i].value != '') url = url + 'id_abil' + '=' + abils[i].value + '&';
xhttp.open('GET', url, true);
xhttp.send();
}
}
我的问题是警报标记正确地标记了节点的 innerHTML,但在它之后的 2 行告诉我未定义 abils[i]。即使我删除了 if 子句,只保留 2 条指令一条接一条,也没有任何变化:警报继续运行良好,但 abils[i].parentNode.parentNode.innerHTML = this.responseText;
没有。
我也尝试使用 jquery for ajax ,但没有任何变化:在成功函数中它说我没有定义 abils[i] 。
我不知道该怎么办,请帮帮我。
在你的for循环中,复制第一行的“i”作为, 设j=i; 然后,不使用“i”,而是使用“j”来访问 element.see(如果有帮助的话)