我目前在这个项目上苦苦挣扎,因为我不知道在哪里以及通过各种在线搜索,我得到不同的答案,所以我目前最有可能的代码是没有接近正确的。乘法表变为1 - 10并显示乘法答案最多为5.(1x1 = 1,1x2 = 2,一直到5x10,如果有意义的话)我需要一个正确的代码示例。
<!DOCTYPE html>
<html>
<head>
<title>Multiplication Tables</title>
</head>
<body>
<p>Enter a number below to see its multiplication table.</p>
<input type="text" name="txtNumber" id="txtNumber" placeholder="Enter a number" />
<br />
<br />
<button onclick="DisplayTable();">Click Me</button>
<div id="multiTable"></div>
<script language="javascript">
function DisplayTable(){
for (var i = 1; i <= 10; i++){
for (var i = 1, var j = 0; (i+j) <= 10; i++, j += i) {
System.out.print("\t"+i*j);
System.out.println();
}
}
}
</script>
</body>
</html>
&#13;
答案 0 :(得分:-1)
1)插入/包含Javascript时,请使用type="text/javascript"
代替language="javascript"
,因为后者不是标准代码。
2)正如评论中已经提到的那样,您试图在第二个for循环(var i = 1
)中重新定义第一个for循环(var i = 1, var j = 0
)的计数器。对于外部i
- 循环使用for
计数器,对于内部/第二j
循环,最好只使用for
。 (由于i
计数器在两个循环中都已可用,并且您不想在那里重置它。)
3)System.out.print
和System.out.printLn
不是JavaScript函数。 Javascript的等价物是document.write("Some text");
。但是不建议使用此功能,因为在加载页面后调用它时将清除所有HTML(这种情况就是这种情况)。
因此,在您的Javascript函数中,使用字符串变量来存储生成的HTML代码。然后让你的Javascript函数在for
循环的每次迭代中添加一个新的表行/单元格。
4)在HTML中创建表格时,请不要使用\t
,而应使用相应的<table>
标记,表格行(<tr>
)和表格单元格({{1 }})。
5)目前还不清楚你想用一个<td>
字段做什么。我猜你要使用input
来让用户选择从哪里开始并以乘法(行和列)结束。在这种情况下,您需要4个input
- 字段(具有唯一ID)。在Javascript函数的开头提取这4个值,以将它们用作input
- 循环的起点和终点。
示例:
for
function DisplayTable(){
/* first, get the values of the input fields and parse them as integers */
var colStart = parseInt(document.getElementById("startCol").value);
var colEnd = parseInt(document.getElementById("endCol").value);
var rowStart = parseInt(document.getElementById("startRow").value);
var rowEnd = parseInt(document.getElementById("endRow").value);
/* create a buffer variable for the new html code & put a opening table tag in it (with a border for clearity) */
var htmlBuffer = "<table border='1'>";
for (var i = rowStart; i <= rowEnd; i++){
/* add a opening table row tag to the buffer */
htmlBuffer += "<tr>";
for (var j = colStart; j <= colEnd; j++) {
/* add a table cell with the multiplication inside it to the buffer */
htmlBuffer += "<td>"+ (i*j) + "</td>";
}
/* add a closing table row tag to the buffer */
htmlBuffer += "</tr>";
}
/* add a closing table tag to the buffer */
htmlBuffer += "</table>";
/* print/put generated html code inside the DIV element */
document.getElementById("multiTable").innerHTML = htmlBuffer;
}