javascript - 使用 javascript 在 6 x 6 的表格中生成 div

标签 javascript html

我被一个小代码困住了,它就在我的脑海中。因此,使用 javascript,我创建一个 div 并尝试在 6x6 表格中显示它们,除非实际使用表格标签。 (这样做的原因是我必须在此之后做一些 table 会干扰的事情)。不管怎样,主要目标是用 javascript 生成一个 6x6 的红色 100px 正方形表格。每个 div 都会有自己唯一的 id 供以后使用,但是我需要的帮助就是让这个表格正确显示。这是我到目前为止的代码。

   <!doctype html>
    <html>    

    <title></title>
    <head>

    <script type="text/javascript">

    function generateGrid(){
    var div = document.createElement("Div");
    div.style.width = "100px";
    div.style.height="100px";
    div.style.background = "red";
    linebreak = document.createElement("br");

    for(i=0;i<6;i++){

        for(b=0;b<6;b++){
             document.body.appendChild(div);
        }
          document.body.appendChild(linebreak);
    }
    }
    </script>
    </head>    

    <body>
    <script>generateGrid();</script>

    </body>    

    </html>

由于某种原因,它只显示一个红色框。我确信这是一个非常简单的错误,但我无法找到修复方法,而且我不是 javascript(java 程序员)的本地人,这仅适用于互联网编程类(class)。

谢谢大家

最佳答案

您显示的代码恰好创建了两个元素,一个 div 和一个 br。 .appendChild() method不会创建 div 的其他副本,它只是插入或移动第一个副本。 (除非在这种情况下,您说将其附加到它已经存在的位置,这没有任何效果。)

无论如何,所需的简单修复只是在循环内创建一个新的 div:

function generateGrid() {
  var div;
  for (i = 0; i < 6; i++) {
    for (b = 0; b < 6; b++) { 
      div = document.createElement("div");
      div.style.width = "10px";
      div.style.height = "10px";
      div.style.background = "red";
      div.style.display = "inline-block";
      div.style.margin = "1px";
      document.body.appendChild(div);
    }
    document.body.appendChild(document.createElement("br"));
  }
}

generateGrid();

请注意,默认情况下 div 元素是 block 元素,因此每行不会有六个并排的元素,除非将它们设置为 display: inlinedisplay: inline- block

与其直接设置所有这些样式,不如在 CSS 中设置它们并只分配一个类:

function generateGrid() {
  var div;
  for (i = 0; i < 6; i++) {
    for (b = 0; b < 6; b++) { 
      div = document.createElement("div");
      div.className = "cell";
      document.body.appendChild(div);
    }
    document.body.appendChild(document.createElement("br"));
  }
}

generateGrid();
.cell {
  width: 10px;
  height: 10px;
  background: red;
  display: inline-block;
  margin: 1px;
}

关于javascript - 使用 javascript 在 6 x 6 的表格中生成 div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39842852/

相关文章:

javascript - 如何更改多个数组对象的索引?

html - 像链接一样的表格行

html - 设置 section 和 aside 以使用 main 标签自动展开

javascript - 没有库的等效代码

javascript - 使用CSS3关键帧 super 彩虹改变javascript donut 数据的颜色

javascript - Nivoslider(在动态 ajax 内容中)不会在第一次加载时加载图像

javascript - 在 javascript 中创建图像的缩略图方 block (不丢失纵横比)

html - 在移动 View 中的主要内容之后显示侧边栏

javascript - 如何对数组中每个标签 p 的 5 个字符进行子字符串化?

javascript - 允许在没有 {{#open_tag}} 和 {{#close_tag}} 的情况下包装内容的客户端/服务器模板系统?