首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用JavaScript创建表格或多维网格

使用JavaScript创建表格或多维网格
EN

Stack Overflow用户
提问于 2015-12-13 09:41:18
回答 3查看 3.5K关注 0票数 1

我试图创建一个单词搜索拼图,并开始生成一个随机字母表。我想要一个任意数字的表,例如10X10,但到目前为止,我只能生成一个列,并且无法知道如何创建更多的列或整个网格。

代码语言:javascript
复制
var firstCol = [];

for (var i = 0; i <= 10; i++){
    var characters = 'ABCDEFGHIJKLMNOPQRSTUVXYZ';
    var random = parseInt(Math.random()*characters.length);
    var letter = characters.charAt(random); //returning random letter
    var innerArrays = ['<td>' + letter + '</td>'];
    firstCol.push(innerArrays);
};


for (var i = 0; i <= 10; i++){
    document.getElementById('wsBox').innerHTML += 
    '<tr>'+ firstCol[i] + '</tr>';
};

这是我的HTML。

代码语言:javascript
复制
<table>
    <tbody id="wsBox">
    </tbody>
</table>
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-12-13 10:01:32

这是一个非常基本的代码。

代码语言:javascript
复制
var cols = 10; 
var rows = 10; 
var html = ""; 

for(var i =0; i <= rows; i++) { 
    html += '<tr>'; 
    for(var h=0; h<= cols; h++) { 
       var characters = 'ABCDEFGHIJKLMNOPQRSTUVXYZ'; 
       var random = parseInt(Math.random()*characters.length);
       var letter = characters.charAt(random); //returning random letter
       html += '<td>' + letter + '</td>'; 
    } 
    html += '</tr>'; 
}

document.getElementById('wsBox').innerHTML += html;
票数 2
EN

Stack Overflow用户

发布于 2015-12-13 09:59:25

以下是工作代码:

http://jsfiddle.net/42dj7jy8/3/

脚本

代码语言:javascript
复制
var rows = [];
var colStr = null;
for(var j = 0; j <= 10; j++) {
    colStr = "";
  var characters = 'ABCDEFGHIJKLMNOPQRSTUVXYZ';
  for (var i = 0; i <= 10; i++){
      var random = parseInt(Math.random()*characters.length);
      var letter = characters.charAt(random); //returning random letter
      var cell = '<td>' + letter + '</td>';
      colStr += cell;
  };
  rows.push('<tr>' + colStr + '</tr>');
}


document.getElementById('wsBox').innerHTML += rows.join("");

用一些CSS把它洗掉

代码语言:javascript
复制
td {
  border: 1px solid black;
  padding: 4px;
  text-align: center;
  vertical-align: middle;
  width: 20px;
  height: 20px;
}
table {
    border-collapse: collapse;
    border-spacing: 0;
}

这是输出

票数 -1
EN

Stack Overflow用户

发布于 2015-12-13 10:05:16

这使用数组来构建网格的单元格和行,这些单元格和行与join方法一起连接。只需将网格的尺寸传递到函数中即可。只有一圈。

代码语言:javascript
复制
function createGrid(x, y) {
  var rows = [], cells = [];
  var characters = 'ABCDEFGHIJKLMNOPQRSTUVXYZ';

  // a complete grid is x * y dimensions
  for (var i = 0, l = x * y; i < l; i++) {
    letter = characters.charAt(Math.random() * characters.length);
    cells.push('<td>' + letter + '</td>');

    // when we reach the last column of the row
    // push the cells into the row array and reset
    // the cells array
    if (i !== 0 && (i + 1) % x === 0) {
      rows.push('<tr>' + cells.join('') + '</tr>');
      cells = [];
    }
  }
  return rows.join('');
}

获取元素并使用insertAdjacentHTML添加已编译的grid。

代码语言:javascript
复制
var tbody = document.getElementById('wsBox');
tbody.insertAdjacentHTML('beforeend', createGrid(10, 10));

演示 - 10×10网格

演示 -3x4网格

票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34249746

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档