2011-03-25 72 views
0

我可以访问二维数组的第一维,但我将如何访问第二维?我想在表格的文本区域中显示数组的值,就像使用\ t和\ n等转义序列一样。如何将二维数组的值输出到文本区域?

我到目前为止来源:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" 
    "http://www.w3.org/TR/html4/strict.dtd"> 
    <html> 
     <head> 
      <title></title> 
      <script type="text/javascript"> 
       var txt = ""; 
       var Person = new Array(4); 
       for (var i=0; i<4; i++) 
        Person[i] = new Array(5); 
       function display() 
        { 
         for (i = 0; i< 4; i++) 
         { 
          txt += "Person " + i + \t; 
          for (var j = 0; j < 5; j++) 
           txt += Person[i][j] + \t; 
          txt += \n; 
         } 
         document.getElementById("results").innerHTML = txt; 
        } 
      </script> 
     </head> 
     <body> 
      <form id="input"> 
<input type="submit" value="Submit" onclick="display()" /><br /> 
       <textarea id="results" rows="7" cols="39"></textarea> 
      </form> 
     </body> 
    </html> 

回答

0

也非常简单:由

Person[i][j]; 

你让Person数组的数组代替

<!-- stuck here --> 

。用Person[i],你已经有了它的i th元素,这是一个数组。通过Person[i][j],你已经得到了该内部数组的第个元素。

你也可以写这样的:

var array = Person[i]; 
innerHTML += array[j]; 

作为一个侧面说明,将其分配给innerHTML属性之前,我想组装您的文字,它的速度快了很多:你写的方式现在意味着每次查找textarea,获取其innerHTML,将其添加到它,并将其重新分配给innerHTML属性。

+0

出于某种原因,当我点击提交时,它不会在textarea中显示任何内容。我编辑了源代码并将其发布到OP中,以便将所有数据放入一个变量中,然后将其内容分配给textarea。 – Psycho 2011-03-25 16:22:33

+0

也许是因为您已将代码放在'提交'按钮上?你点击'提交',你的代码在页面被刷新的时候被执行** ......这意味着在你的循环甚至停止运行之前页面被销毁。它在这里工作:http://jsfiddle.net/wccUE/ – Martijn 2011-03-25 16:34:22

相关问题