gpt4 book ai didi

Javascript var 提前发布

转载 作者:行者123 更新时间:2023-12-02 18:46:57 25 4
gpt4 key购买 nike

我有一个已经使用过多次的函数,但在这一次修改中,我似乎遗漏了一些东西。我有一个 var listHTML ,我用它作为附加 HTML 的基础,这样我就可以在 for 循环完成后更新 div 的 HTML,但无论出于何种原因,在for 循环完成。我认为在循环运行之前在循环外部创建对 var 的引用足以将其保留在内存中直到函数结束......我猜不是。

代码:

var listHTML = '';

for(var j = 0; j < arr.length; j++)
{
var product = arr[j].split(",");
var key = product[1];

$.ajax({
url:"http://domain.com/dir/get.php?key="+encodeURIComponent(key),
dataType: 'jsonp',
success:function(json){

var i = 0;

while(json[i])
{
listHTML += '<div class="row">';
listHTML += '<div class="image"><img src="'+json[i]["image"]+'"/></div>';
listHTML += '<div class="title">'+json[i]["title"]+'</div>';
listHTML += '<div class="quantity"><input type="number" id="'+key+'" value="'+product[0]+'"/></div>';
listHTML += '<div class="actions"><img src="/_newsite/images/icons/trash.png" onclick="removeFromCart('+"'"+key+"'"+')" title="Remove From Cart/><img src="/_newsite/images/icons/update.png" onclick="updateCart('+"'"+key+"'"+')" title="Update Quantity"/></div>';
listHTML += '</div>';

i++;
}

console.log(listHTML);

},
error:function(){
alert("Error");
},
});

}

console.log(listHTML);

当 console.log 在 for 循环内部运行时,它返回我期望的正确值,但 for 循环外部函数末尾的值返回 null。

最佳答案

在函数完成后的某个时间,您的 ajax 成功回调将被调用。 Ajax 中的“A”代表异步。

因此,当您的函数完成时,listHTML 尚未被触及。您需要修改成功回调函数内的 listHTML 并在那里使用它,或者将其作为您从成功回调中调用的参数传递给另一个函数。您无法按照您尝试的方式在成功处理程序之外使用它。

关于Javascript var 提前发布,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16269461/

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