3 回答
TA贡献1799条经验 获得超6个赞
在第一个文件中,for您创建一个<tr>添加一些文本并关闭一个</td>.
你很可能应该只打开一个tr,然后在内部for然后关闭tr
for (let i = 0; i < rows; ++i) {
text += "<tr>";
for (let j = 0; j < column; j++) {
let k = (i * rows + j) % 26;
text += "<td>" + letters.charAt(k) + "</td>";
}
text += '</tr>';
}
TA贡献1821条经验 获得超6个赞
您需要<tr>如下所示拆分标签。这条线引起了问题
text += "<tr>"+ letters.charAt(i) + "</td>";
您得到的异常结果只是因为这个。请参阅下面的代码,我如何在循环</tr>后使用for并删除letter.charAt(i). 这是添加了额外的行。
text += "<tr>";
for(let j = 0; j < column ; j++){
let k = (i * rows + j) % 26;
text += "<td>"+letters.charAt(k)+ "</td>";
}
text += "</tr>";
TA贡献1752条经验 获得超4个赞
就是这个。 https://jsfiddle.net/Cornel777/kgbojuhz/8/
刚刚添加到
"<td>"
这里text += "<tr>"+ "<td>" + letters.charAt(i) + "</td>";
搬了你的
<script>
后<body>
这样做了,但这不是强制性的,只是较新的。
let column = document.getElementById("columns").value;
let rows = document.getElementById("rows").value;
<!DOCTYPE html>
<html>
<head>
<title>""</title>
</head>
<body>
<h1>""</h1>
<form name="form" action = "javascript:letter_matrix();">
Columns: <input id="columns" type="text" name="letter_column">
Rows: <input id="rows" type="text" name="letter_rows">
<input type="submit" value="Enter values.">
</form>
<pre id="results">
</pre>
</body>
<script>
function letter_matrix() {
let column = document.getElementById("columns").value;
let rows = document.getElementById("rows").value;
let text = "<table><th></th>";
let letters = "ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ";
for (let i = 0; i < rows ; i++) {
text += "<tr>"+ "<td>" + letters.charAt(i) + "</td>";
for(let j = 0; j < column ; j++){
let k = (i * rows + j) % 26;
text += "<td>"+letters.charAt(k)+ "</td>";
}
}
text += "</table>";
document.getElementById("results").innerHTML= text;
}
</script>
</html>
添加回答
举报