我正在尝试使用谷歌的AJAX语言API来翻译数组中的每个值。
for(var n=0; n < mytext.length; n++) {
google.language.translate(mytext[n], originalLanguage, newLanguage, function(result){
if(!result.error){
document.getElementById("caption") += mytext[n]+" has been translated to "+result.translation;
}
})
}
这段代码可以正确翻译整个数组,但在被google.language.translate调用的成功函数中,n始终等于mycaptions.length。这导致mycaptions[n]返回未定义(例如,“已被翻译为Hola”)。这让我困惑了好几天(为什么回调函数内部的n值总是像您在循环末尾一样???),我猜答案在一个显而易见的编程位上,只是我不明白。