html页面中数组的输出

时间:2017-02-25 14:20:34

标签: html arrays multidimensional-array

我正在尝试将数组中的数组内容输出到HTML页面上的一小块区域。我只能输出一维数组。

简化后,目标数组有许多属性,但我很难找到正确的代码来输出嵌套在数组中的数组。

属性是; ID(整数) 位置(串) 邮编(字符串) 其他属性可以在线下添加。

输出信息我使用下面的代码(我只能在单个数组上工作 - 即使我改为使用[i] [x])

document.write("<tr><td>ID " + i + " is:</td>");

document.write("<td>" + LocationArray[i] + "</td></tr>");

如何正确创建能够存储信息然后输出特定部分的数组?例如,显示LocationArray [2] [3]

的内容

document.write是一种有效的方法,还是有更好的方法?

1 个答案:

答案 0 :(得分:1)

我把东西放在一起,这可以帮助你。最后回答你关于以正确方式创建阵列的问题;有两种可能性:

  • 使用基于'属性'的属性创建数组:
    var locationsArray = [{ID:123,Location:'blabla',Postalcode:'1234'}];
  • 使用字符串键创建数组:
    var locationsArray = [{'ID':123,'Location':'blabla','Postalcode':'1234'}];

在我的例子中,我使用了第一次尝试。

对于您的第二个问题: document.write 只是在文档末尾写入。如果您要写入网站的特定区域,请创建一个容器(例如)并为其指定 id 。然后更改已创建容器的属性 innerHTML ,就像我在我的示例中所做的那样。

<强> HTML:

<div id="locations"></div>
<button onclick="printLocations()">Print Locations</button>

<强>使用Javascript:

function printLocations() {
  var locationsArray = [{
    ID : 123,
    Location : 'Candyland',
    Postalcode : '1234'
  }, {
    ID : 456,
    Location : 'Middle-Earth',
    Postalcode : '4567'
  } 
  ];

  var locationsHtml = '';
  for (var index in locationsArray) {
        locationsHtml += 'ID: ' + locationsArray[index].ID + ', ' +
                         'Location: ' + locationsArray[index].Location + ', ' +
                         'Postalcode: ' + locationsArray[index].Postalcode + '<br />';
  }
  console.log(locationsHtml);
  document.getElementById('locations').innerHTML = locationsHtml;
}

如果您只想编写数组的特定部分(在您的示例中只是一个特定位置),只需使用您想要的索引并以与我示例中的for循环相同的方式访问它:

  var locationsHtml = locationsArray[1].ID + locationsArray[1].Location + etc...; 
  /*with string-keys: var locationsHtml = locationsArray[1]['ID'] + etc...;*/
  document.getElementById('locations').innerHTML = locationsHtml;