Javascript 从.get()创建的数组赢得';t填充html选择

Javascript 从.get()创建的数组赢得';t填充html选择,javascript,jquery,arrays,Javascript,Jquery,Arrays,这是简况。我有一个外部.txt文件,它有许多位置(每行一个),我需要将这些位置加载到脚本中以填充下拉列表。我正在使用.get()拉入数据,并将其放入数组中。它看起来是正确的,但是下拉列表没有填充。在做一些测试时,我发现如果我在声明数组时手动填充它,那么我在那里声明的数据可以很好地加载。此外,如果我尝试对数组执行任何操作,例如将其转换为字符串,则不会发生任何事情,如果我尝试检查数组的长度,则会报告0。我尝试制作一个新数组,并将第一个数组的内容放入其中,但没有骰子。我也尝试过使用makeArray,

这是简况。我有一个外部.txt文件,它有许多位置(每行一个),我需要将这些位置加载到脚本中以填充下拉列表。我正在使用.get()拉入数据,并将其放入数组中。它看起来是正确的,但是下拉列表没有填充。在做一些测试时,我发现如果我在声明数组时手动填充它,那么我在那里声明的数据可以很好地加载。此外,如果我尝试对数组执行任何操作,例如将其转换为字符串,则不会发生任何事情,如果我尝试检查数组的长度,则会报告0。我尝试制作一个新数组,并将第一个数组的内容放入其中,但没有骰子。我也尝试过使用makeArray,但没有成功

以下是我目前的代码:

var siteIdArray = [];
var path = "*snipped*/siteId.text";
var option = "";

$.get(path, function(data)
{
  siteIdArray = data.split("\n");
  console.log(siteIdArray);
});

for (i = 0; i < siteIdArray.length; i++)
{
  option += '<option value="'+ siteIdArray[i] + '">' + siteIdArray[i] + '</option>';
}
$('#siteId').append(option);
siteId.txt如下所示:

AN
AZ
BA
CA

$.get
是一个异步调用,您必须使用回调中的响应对象完成所有工作,或者将其传递给另一个函数:

$.get(path, function(data)
{
  siteIdArray = data.split("\n");
  console.log(siteIdArray);

  for (i = 0; i < siteIdArray.length; i++)
  {
      option += '<option value="'+ siteIdArray[i] + '">' + siteIdArray[i] + '</option>';
  }
  $('#siteId').append(option);
});
$.get(路径、函数(数据)
{
SiteArray=data.split(“\n”);
控制台日志(SiteArray);
对于(i=0;i是,因此依赖于
siteIdArray
的所有代码都需要在回调函数中

发生的情况是,您的代码正在到达for循环,但在该阶段,
sidedarray
还没有被AJAX响应填充,这就是为什么您对
console.log
的调用起作用,而其余的则不起作用

您的代码已更新:

var siteIdArray = [];
var path = "*snipped*/siteId.text";
var option = "";

$.get(path, function(data)
{
  siteIdArray = data.split("\n");
  console.log(siteIdArray);

  for (i = 0; i < siteIdArray.length; i++)
  {
    option += '<option value="'+ siteIdArray[i] + '">' + siteIdArray[i] + '</option>';
  }

  $('#siteId').append(option);
});
var siteIdArray=[];
var path=“*snipped*/siteId.text”;
var选项=”;
$.get(路径、函数(数据)
{
SiteArray=data.split(“\n”);
控制台日志(SiteArray);
对于(i=0;i
谢谢!我不知道那是多少美元,但它是有效的,现在我知道了!
var siteIdArray = [];
var path = "*snipped*/siteId.text";
var option = "";

$.get(path, function(data)
{
  siteIdArray = data.split("\n");
  console.log(siteIdArray);

  for (i = 0; i < siteIdArray.length; i++)
  {
    option += '<option value="'+ siteIdArray[i] + '">' + siteIdArray[i] + '</option>';
  }

  $('#siteId').append(option);
});