【发布时间】:2016-09-18 18:54:58
【问题描述】:
function promptuj() {
this.x = prompt("How big should be your multiplication table?");
document.getElementById("keks").innerHTML = tabliczka(this.x);
}
function tabliczka() {
document.getElementById("keks").innerHTML += "<table border=\"1\">";
for (i = 1; i <= this.x; i++) {
document.getElementById("keks").innerHTML += "<tr><td>" + i + "</td>";
for (j = 1; j <= this.x; j++) {
if (j != 1) {
document.getElementById("keks").innerHTML += "<td>" + j * i + "</td>";
}
}
document.getElementById("keks").innerHTML += "</tr>";
}
document.getElementById("keks").innerHTML += "</table>";
}
<!DOCTYPE html>
<html>
<head>
<title>Demo</title>
<meta charset="utf-8">
</head>
<body>
<input type="button" onclick="promptuj()" value="Promptonto" />
<div id="keks"></div>
</html>
这个简短的东西是用于带有提示按钮的乘法表,询问它应该有多大。但是给它任何数字会返回未定义而不是表。 在此之前,我有 document.write(whatever) 而不是 document.getElementById("keks").innerHTML += 并且它有效。
编辑:我注意到我没有关闭 <body> 但它没有帮助。
【问题讨论】:
-
永远不要使用
.innerHTML +=!!! -
@Oriol 那我应该改用什么? :|
-
@Andrew L. 我只是在函数之外定义了它,没关系。当我使用 document.write() 时,它没有定义它就可以工作。
-
您将
this.x传递给tabliczka()函数,但您没有在该函数中使用参数 -
@Irevall:DOM 不是 HTML 字符串。给 DOM 添加结束标签是没有意义的。您可以添加整个元素,如果您希望采用这种方法,可以使用
.innerHTML从有效的 HTML 结构中解析出来。
标签: javascript html