我無法通過$獲得()函數 傳遞變量的值不同,請檢查此代碼以瞭解更多關於我的問題
var addressFieldValues = ['address1', 'address2', 'address3'];
for(i=0; i<addressFieldValues.length; i++) {
var address = addressFieldValues[i];
$.get('function.php', address, function(data){
alert(address); // alerts address1 all time
});
}
爲什麼提醒「地址1」這3次?因爲它應該提醒3個不同的地址。在對象格式
要解決此問題,您可以使用['讓address'(https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/let)支持的瀏覽器或[封閉函數](http://stackoverflow.com/questions/750486/javascript-closure-inside-loops-simple-practical-example)。原因是:var address只存在於整個循環中,並且由於'。.get()'異步運行,'alert(address);'不會被執行,直到'for'循環完成並被重新分配'var address'多次。 –
使用'.forEach()'代替循環也可以解決問題。 – Pointy