我尝试在将这些不断更新的值插入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>
答案 0 :(得分:1)
如上所述@ vZ10,您需要将脚本放在body
标记的末尾。此外,您还提示用户在实际呈现表格后填写数据(document.write
调用)。尝试在提示
document.write
来电
答案 1 :(得分:1)
首先,您不需要document.write
这一部分:
document.write("<table>");
document.write("<tr><th>Product Number</th><th>Quantity Sold</th></tr>");
事实上,在您的情况下,您根本不需要使用document.write
,在没有必要的情况下可以更加健康。
通过将此标记作为基本模型,您可以减轻一些痛苦:
<强> HTML 强>
<table>
<tr><th>Product Number</th><th>Quantity Sold</th></tr>
<tr><td>1</td><td id="product1"></td></tr>
<tr><td>2</td><td id="product2"></td></tr>
<tr><td>3</td><td id="product3"></td></tr>
<tr><td>4</td><td id="product4"></td></tr>
<tr><td>5</td><td id="product5"></td></tr>
</table>
然后,您可以使用类似的东西访问您的字段(脚本位于正文的末尾,或者至少在表标记之后):
<强>的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(文档对象模型)文本元素并对其进行更新(请参阅DOM reference):
var product1_text = document.createTextNode("1.00");
document.getElementById("product1").appendChild(product1_text);
// now you can update the value
product1_text.textContent = "1.50"; // calculated value
我会让你考虑用文本单元格计算的问题。使用当前脚本,您将在字符串上遇到operator + =的问题。请记住,当您获得显示的数字时,您将使用字符串而不是其所代表的基数10。您将需要函数parseFloat(stringValue)
来实现这一目标。
我希望这有帮助并祝你好运。
答案 2 :(得分:0)
我认为你应该把你的脚本放在身体的尽头。现在它会在您的页面出现在屏幕上之前运行。
答案 3 :(得分:0)
您必须在<body>
标记结束后写入脚本,即</body>
之后。