Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/436.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript .innerHTML显示为未定义_Javascript_Dom - Fatal编程技术网

Javascript .innerHTML显示为未定义

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

好的,我知道这是一个非常基本的JS逻辑,但我正在尝试用.innerHTML替换任何document.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)