如何为循环创建一个简单的5行JavaScript乘法表

时间:2015-02-28 02:29:54

标签: javascript

我目前在这个项目上苦苦挣扎,因为我不知道在哪里以及通过各种在线搜索,我得到不同的答案,所以我目前最有可能的代码是没有接近正确的。乘法表变为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;
&#13;
&#13;

1 个答案:

答案 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.printSystem.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;
}