为什么';Javascript动态HTML5表未出现在页面上

为什么';Javascript动态HTML5表未出现在页面上,javascript,html,Javascript,Html,在将这些不断更新的值插入HTML表之前,我试图获取产品的数量并将其乘以价格。为了这个例子,我使用了一个永久循环来不断地获取输入 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <script> <!-- var product1 = 0; var product2 = 0; var product3 = 0; var product4 =

在将这些不断更新的值插入HTML表之前,我试图获取产品的数量并将其乘以价格。为了这个例子,我使用了一个永久循环来不断地获取输入

    <!DOCTYPE html>
    <html>

    <head>
    <meta charset="utf-8">

<script>
<!--
var product1 = 0;
var product2 = 0;
var product3 = 0;
var product4 = 0;
var product5 = 0;
var productNum = 0;
var productNumInt = 0;
var quantitySold = 0;
var quantitySoldInt = 0;

document.write("<table>");
document.write("<tr><th>Product Number</th><th>Quantity Sold</th></tr>");
document.write("<tr><td>1</td><td>$" + product1 + "</td></tr>");
document.write("<tr><td>2</td><td>$" + product2 + "</td></tr>");
document.write("<tr><td>3</td><td>$" + product3 + "</td></tr>");
document.write("<tr><td>4</td><td>$" + product4 + "</td></tr>");
document.write("<tr><td>5</td><td>$" + product5 + "</td></tr>");
document.write("</table>");

while (true) {
  productNum = window.prompt("Please enter the product number");
  quantitySold = window.prompt("Please enter the quantity sold");
  productNumInt = parseInt(productNum);
  quantitySoldInt = parseInt(quantitySold);

  switch (productNumInt) {
    case 1:
      product1 += quantitySoldInt * 2.98;
      break;
    case 2:
      product2 += quantitySoldInt * 4.50;
      break;
    case 3:
      product3 += quantitySoldInt * 9.98;
      break;
    case 4:
      product4 += quantitySoldInt * 4.49;
      break;
    case 5:
      product5 += quantitySoldInt * 6.87;
      break;
  }
}
// -->
</script>
</head>

<body>
</body>

</html>


我认为你应该把脚本放在正文的末尾。现在,它会在页面出现在屏幕上之前运行。

我认为您应该将脚本放在正文的末尾。现在,它会在页面出现在屏幕上之前运行。

如@vZ10所述,您需要将脚本放在
正文
标记的末尾。此外,您还提示用户在实际呈现表后填写数据(
document.write
calls)。尝试放置
文档。如@vZ10所述,在提示符后编写
调用。您需要将脚本放在
正文
标记的末尾。此外,您还提示用户在实际呈现表后填写数据(
document.write
calls)。尝试放置
文档。在提示符后编写
调用
您必须在
标记结束后编写脚本,即
之后。您必须在
标记结束后编写脚本,即
之后。首先,您不需要
文档。编写
此部分:

document.write("<table>");
document.write("<tr><th>Product Number</th><th>Quantity Sold</th></tr>");
然后,您可以通过以下方式访问字段(脚本位于正文末尾,或者至少在表标记之后):

JavaScript

document.getElementById("product1").innerHTML = "1.00";
document.getElementById("product2").innerHTML = "2.00";
document.getElementById("product3").innerHTML = "3.00";
document.getElementById("product4").innerHTML = "4.00";
document.getElementById("product5").innerHTML = "5.00";
更好的是,您可以创建DOM(文档对象模型)文本元素并对其进行更新(请参阅):

我将让你们思考一下使用文本单元格进行计算的问题。使用当前脚本,您将面临字符串上运算符+=的问题。请记住,当您获得显示的数字时,您使用的是字符串,而不是它所表示的以10为基数的数字。您将需要函数
parseFloat(stringValue)
来实现这一点


我希望这会有帮助,祝你好运。

首先,你不需要
文档。写这部分:

document.write("<table>");
document.write("<tr><th>Product Number</th><th>Quantity Sold</th></tr>");
然后,您可以通过以下方式访问字段(脚本位于正文末尾,或者至少在表标记之后):

JavaScript

document.getElementById("product1").innerHTML = "1.00";
document.getElementById("product2").innerHTML = "2.00";
document.getElementById("product3").innerHTML = "3.00";
document.getElementById("product4").innerHTML = "4.00";
document.getElementById("product5").innerHTML = "5.00";
更好的是,您可以创建DOM(文档对象模型)文本元素并对其进行更新(请参阅):

我将让你们思考一下使用文本单元格进行计算的问题。使用当前脚本,您将面临字符串上运算符+=的问题。请记住,当您获得显示的数字时,您使用的是字符串,而不是它所表示的以10为基数的数字。您将需要函数
parseFloat(stringValue)
来实现这一点


我希望这会有所帮助,祝你好运。

现在它在DOM构建之前运行!现在它在DOM构建之前运行!