javascript - 使用 Javascript 创建 HTML 表格

标签 javascript html-table

我的问题最终将与此网站相关:

http://dbtest.net16.net/ethanol-01.html

编辑:在此处查看未加密的页面源>> http://dbtest.net16.net/ethanol-22.html

这是一个 HTML 表单,其结果是使用 JavaScript 计算的。我的目标是显示一个包含 2-6 列和可变行数的表格,具体取决于用户输入(表单将被修改)。我的问题是,我不完全理解如何在用户单击“计算”按钮后在 JavaScript 中创建表。我找到了一些潜在的好的答案,但显然没有完全理解这一切。运行以下代码有点像我希望输出显示的内容。

<html>
    <!-- http://www.java2s.com/Tutorial/JavaScript/0220__Array/OutputarrayelementinaHTMLtableformat.htm -->

    <head>
        <title>Table of Numbers</title>
    </head>

    <body>
         <h1>Table of Numbers</h1>

        <table border="0">
            <script language="javascript" type="text/javascript">
                <!--

                var myArray = new Array();
                myArray[0] = 1;
                myArray[1] = 2.218;
                myArray[2] = 33;
                myArray[3] = 114.94;
                myArray[4] = 5;
                myArray[5] = 33;
                myArray[6] = 114.980;
                myArray[7] = 5;

                document.write("<tr><td style='width: 100px; color: red;'>Col Head 1</td>");
                document.write("<td style='width: 100px; color: red; text-align: right;'>Col Head 2</td>");
                document.write("<td style='width: 100px; color: red; text-align: right;'>Col Head 3</td></tr>");

                document.write("<tr><td style='width: 100px;'>---------------</td>");
                document.write("<td style='width: 100px; text-align: right;'>---------------</td>");
                document.write("<td style='width: 100px; text-align: right;'>---------------</td></tr>");

                for (var i = 0; i < 8; i++) {
                    document.write("<tr><td style='width: 100px;'>Number " + i + " is:</td>");
                    myArray[i] = myArray[i].toFixed(3);
                    document.write("<td style='width: 100px; text-align: right;'>" + myArray[i] + "</td>");
                    document.write("<td style='width: 100px; text-align: right;'>" + myArray[i] + "</td></tr>");
                }

                 //-->
            </script>
        </table>
    </body>

</html>

如果我可以使用实际的 javascript 文件创建测试表并用测试数据填充,那么我应该能够自己计算其余部分(我认为)。

以下是迄今为止我能找到的一些最佳答案:

http://jsfiddle.net/drewnoakes/YAXDZ/

上面的链接起源于 stackoverflow,但我现在似乎找不到原始帖子。

http://www.java2s.com/Tutorial/JavaScript/0220__Array/OutputarrayelementinaHTMLtableformat.htm

感谢任何帮助。由于我的经验有限,越简单越好。

最佳答案

问题是,如果你尝试写 <table><tr><td>每次插入新标签时,浏览器都会尝试关闭它,因为它会认为代码有错误。

不要逐行编写表格,而是将表格连接到变量中并在创建后将其插入:

<script language="javascript" type="text/javascript">
<!--

var myArray    = new Array();
    myArray[0] = 1;
    myArray[1] = 2.218;
    myArray[2] = 33;
    myArray[3] = 114.94;
    myArray[4] = 5;
    myArray[5] = 33;
    myArray[6] = 114.980;
    myArray[7] = 5;

    var myTable= "<table><tr><td style='width: 100px; color: red;'>Col Head 1</td>";
    myTable+= "<td style='width: 100px; color: red; text-align: right;'>Col Head 2</td>";
    myTable+="<td style='width: 100px; color: red; text-align: right;'>Col Head 3</td></tr>";

    myTable+="<tr><td style='width: 100px;                   '>---------------</td>";
    myTable+="<td     style='width: 100px; text-align: right;'>---------------</td>";
    myTable+="<td     style='width: 100px; text-align: right;'>---------------</td></tr>";

  for (var i=0; i<8; i++) {
    myTable+="<tr><td style='width: 100px;'>Number " + i + " is:</td>";
    myArray[i] = myArray[i].toFixed(3);
    myTable+="<td style='width: 100px; text-align: right;'>" + myArray[i] + "</td>";
    myTable+="<td style='width: 100px; text-align: right;'>" + myArray[i] + "</td></tr>";
  }  
   myTable+="</table>";

 document.write( myTable);

//-->
</script> 

如果您的代码位于外部 JS 文件中,请在 HTML 中创建一个带有 ID 的元素,您希望在其中显示表格:

<div id="tablePrint"> </div>

并在 JS 中代替 document.write(myTable)使用以下代码:

document.getElementById('tablePrint').innerHTML = myTable;

关于javascript - 使用 Javascript 创建 HTML 表格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16126357/

相关文章:

javascript - stopPropagation() 但保持其他点击事件处于事件状态

javascript - 如何使用 css 或 jquery 将类添加到按钮属性

javascript - 有没有办法将 IndexedDB 记录设为 "watch",以便我可以在更改时做出响应?

jquery - 清除表jquery

html - 带有 rowspan 的粘性 td(标题)

html - 不要第一次添加边框 HTML

javascript - 带有图像图标的 Bootstrap

javascript - Co 和 co.wrap 在 Node.js 中的行为不同

javascript - 如何以表格格式发送带有数据的邮件

html - 如何在 <td> 中制作可滚动的 div?