javascript - .innerHTML 显示为未定义

标签 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 = writeString + "<br />";
    document.write(writeString);
  }
}


function newTable() {
  for(let i = 1; i <= 10; i++ ) {
    let para = document.getElementById("paragraph");
    para.innerHTML = writeTimesTable(i)    

  }
}

我已经有一个 ID 为 paragraphdiv 元素。当我查看 div#paragraph 以及 script 标记下的其余代码输出(但不在 中)时,我不断收到 undefined >div 元素。我究竟做错了什么?

最佳答案

您的函数writeTimesTable()需要返回一个值。您的 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
}

使用 para.innerHTML = writeTimesTable(i) 可能不是有意的,因为它只会显示最后一个循环,因此您可能还想使用 +=也在这里:

para.innerHTML += writeTimesTable(i)

关于javascript - .innerHTML 显示为未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49330291/

相关文章:

dom - 浏览器会自动插入哪些 DOM 元素?

javascript - element.classList.toggle 中的第二个参数有什么意义?

javascript - removeEventListener是如何实现的?

javascript - 输入类型日期和JavaScript设置的最小值

javascript - 无法读取文件上传未定义的属性 '0'

javascript - 将变量字符串视为文件名

javascript - 使用 jquery 查找位置为 top > x 的对象

javascript - 前置淡出过渡

JavaScript:将对象绑定(bind)到 DOM 元素

javascript - 将一个 div 附加到两个单独的 div