gpt4 book ai didi

javascript - 无法访问 $.ajax.done() 中的全局变量

转载 作者:行者123 更新时间:2023-11-28 04:41:37 26 4
gpt4 key购买 nike

我试图通过innerHTML打印一些通过ajax调用获得的数据,但是全局数组元素在done() promise 中是不可访问的。它确实是未定义的。为什么会发生这种情况?

<html>
<head></head>
<body>
<script src ="jquery.min.js"></script>
<script>
$(document).ready(function(){
var elements = document.getElementsByClassName("wind");

for(i=0;i<elements.length;i=i+1){

$.ajax({
type:"GET",
url:"http://api.openweathermap.org/data/2.5/weather?q="+elements[i].innerHTML+"&appid=7876b25bdca1397553df39ef3ea05fd1",
dataType: "json"
}).done(function(data){
elements[i].innerHTML = data.wind.speed; //elements[i] is undefined
});

//elements[i].innerHTML here elements[i] is OK but I don't have access to "data"

}

});
</script>

<div class="wind">Venice,it</div>
<div class="wind">Rome,it</div>

</body>

最佳答案

尝试使用success 设置而不是done。当请求成功并返回数据时,这将激活。

$.ajax({
type:"GET",
url:"http://api.openweathermap.org/data/2.5/weather?q="+elements[i].innerHTML+"&appid=7876b25bdca1397553df39ef3ea05fd1",
dataType: "json",
success: (function(data){
elements[i].innerHTML = data.wind.speed;
}),
});

关于javascript - 无法访问 $.ajax.done() 中的全局变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43720648/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com