JQuery .html()方法与Javascript .innerHTML =&#34; <div> somediv </div>&#34;?之间的区别

时间:2015-12-17 20:00:00

标签: javascript jquery html

我做了一些谷歌搜索,看着你可能不需要jquery&#34;但仍然无法找出问题所在。

我有一个makeTable函数,它构建一个html字符串形式的表来形成一个表。当我使用Jquery .html方法将输出表附加到DOM时,该函数很有用。

这是功能:

function drawTable () {
  var outputString = '';
  for(var i = 1; i <= 12; i++ ){
    outputString += "<tr>";
    for(var j = 1; j <= 12; j++) {
       outputString += "<td>" + i * j + "</>";
    }
    outputString += "</tr>";
  }
  $("#output").html(outputString);
}

drawTable();

但是,当我不使用Jquery并将$("#output").html(outputString);更改为document.getElementById('output').innerHTML(outputString);时,表格不会在页面上呈现。我只得到一行数字。当我检查元素时,<tr><td>元素根本没有呈现,我不明白为什么。

我很困惑。我应该如何在普通的JS中呈现这个表?我对innerHTML方法有什么不了解?函数是相同的,我只是改变了将outputString附加到DOM的行,并且当我尝试在普通JS中执行它时,我真的不明白为什么它没有正确呈现。请赐教!

1 个答案:

答案 0 :(得分:3)

@Igor Raush的评论是正确的。你错误地使用了innerHtml。它不是采用参数的方法。它是一个属性,其值必须直接设置为等号。

简单的javascript:

document.getElementById("output").innerHtml = outputString;

在jQuery中:

$("#output").html(outputString);