Javascript .innerHTML显示为未定义
好的,我知道这是一个非常基本的JS逻辑,但我正在尝试用.innerHTML替换任何document.write,我用下面的代码进行了尝试Javascript .innerHTML显示为未定义,javascript,dom,Javascript,Dom,好的,我知道这是一个非常基本的JS逻辑,但我正在尝试用.innerHTML替换任何document.write,我用下面的代码进行了尝试 function writeTimesTable(num) { for(let i = 1; i < 10; i++ ) { let writeString = i + " * " + num + " = "; writeString = writeString + (i * num); writeString = write
function writeTimesTable(num) {
for(let i = 1; i < 10; i++ ) {
let writeString = i + " * " + num + " = ";
writeString = writeString + (i * num);
writeString = writeString + "<br />";
document.write(writeString);
}
}
function newTable() {
for(let i = 1; i <= 10; i++ ) {
let para = document.getElementById("paragraph");
para.innerHTML = writeTimesTable(i)
}
}
我已经有了一个ID为段落的div元素。当我查看divparagration和脚本标记下的其余代码输出时,我一直没有定义,但div元素中没有。我做错了什么 函数WriteTimeTable需要返回一个值。您的writeString也需要连接,您可以使用+=实现连接,如下图所示:
function writeTimesTable(num) {
let writeString = "";
for(let i = 1; i < 10; i++ ) {
writeString += i + " * " + num + " = ";
writeString += writeString + (i * num);
writeString += writeString + "<br />";
}
return writeString
}
通常,您希望避免document.write,因为它会逐字写入文档 我还可以在循环过程中自由地在页面外创建DOM,并在最后将其添加到实际的DOM中。这意味着您在循环时不会不断地重新绘制页面 这比将innerHTML=更改为innerHTML+=要好,如果希望避免覆盖循环的每个前一次迭代,则需要这样做 函数writeTimeTableNum{ forlet i=1;i<10;i++{ 让writeString=i+*+num+=; writeString=writeString+i*num; writeString=writeString+; 归还书面资本; } } 函数newTable{ const internal=document.createElement'div'; forlet i=1;i您的新表函数和10个循环是无用的。您在一个DOM元素上做的事情是相同的10倍 不要使用文档。请编写 我想这样做: 函数newTable num{ var HTML=;
对于var i=1,我们可以看到HTML吗?这可能是问题所在。两个问题:1您的函数没有返回任何内容。2您仍然有document.write在函数中。当然,调试
para.innerHTML += writeTimesTable(i)