0
<html>
<head>
<title>Array of Arrays</title>
<script type="text/javascript">
function matrix()
{
var e=prompt("Cols?",0);
var f=prompt("Rows?",0);
var matrix = new Array();
for (var i=0;i<e;i++) 
    {
    matrix[i] = new Array();
    for (var j=0;j<f;j++) 
        {
        matrix[i][j]=Math.floor((Math.random()*1000)+1);
        }
    }
for (var i=0; i<=e-1; i++)
    {
    document.getElementById("keret").innerHTML= 
    document.getElementById("keret").innerHTML+"<tr>";
    for (var j=0; j<=f-1; j++)
        {
        document.getElementById("keret").innerHTML= 
        document.getElementById("keret").innerHTML+"<td>"+matrix[i][j]+"</td>";
        }
    document.getElementById("keret").innerHTML= 
    document.getElementById("keret").innerHTML+"</tr>";

    }
document.getElementById("keret").innerHTML= 
document.getElementById("keret").innerHTML+"</table>";
}
</script>
</head>
<body onload="matrix()">
<table border="1" id="keret">
</body>
</html>

这个脚本创建一个用户定义的数组数组,并用随机数填充它。我的问题是:我无法制作将值放入单个单元格的脚本。

4

2 回答 2

1

您的第二个循环可以如下所示:

for (var i = 0; i < e; i++) {
    var row = document.createElement("tr"); 
    for (var j = 0; j < f; j++) {
        var cell = document.createElement("td");
        cell.innerHTML = matrix[i][j];
        row.appendChild(cell);
    }
    document.getElementById("keret").appendChild(row);
}

这会tr为每一行添加一个元素,并为该行td中的每一列添加一个元素。然后它将该行附加到您的表中。您的 HTML 也会稍作修改:

<table border="1" id="keret"></table>

(行和列提示需要切换,但我不想弄乱你的变量名)。

小提琴:http: //jsfiddle.net/verashn/7Rwnc/

于 2013-11-12T00:19:49.910 回答
0
<html>
<head>
    <title>Array of Arrays</title>
    <script type="text/javascript">
        function matrix() {
            var e = prompt("Cols?",0),
            f = prompt("Rows?",0),        
            allRows = [],
            row = [];

            for (var i = 0; i < e; i += 1) {
                row = ['<tr>', '</tr>'];  // this serves as your initial template

                for (var j = 0; j < f; j += 1) {
                    // now create the columns
                    row.splice(-1, 0, '<td>' + Math.floor((Math.random()*1000)+1) + '</td>')
                }

                allRows.push(row.join(''));
            }

            document.getElementById("keret").innerHTML = allRows.join('');
        }
    </script>
</head>
<body onload="matrix()">
    <table border="1" id="keret"></table>
</body>
</html>
于 2013-11-12T00:26:10.620 回答