Javascript innerHTML=var写入控制台而不是页面

Javascript innerHTML=var写入控制台而不是页面,javascript,html,innerhtml,Javascript,Html,Innerhtml,当我尝试使用以下代码时,innerHTML将写入开发人员控制台,而不是用myTable替换页面主体 document.getElementsByClassName('body').innerHTML = myTable; myTable只是将一系列文本项格式化为一个表。我尝试过使用jQuery $("body").html(myTable); 然而,由于复杂的原因,我正试图完全用javascript来实现这一点 完整代码如下: var titleArray = []; var descArr

当我尝试使用以下代码时,innerHTML将写入开发人员控制台,而不是用myTable替换页面主体

document.getElementsByClassName('body').innerHTML = myTable;
myTable只是将一系列文本项格式化为一个表。我尝试过使用jQuery

$("body").html(myTable);
然而,由于复杂的原因,我正试图完全用javascript来实现这一点

完整代码如下:

var titleArray = [];
var descArray = [];
var myTable = "<table><thead><tr><th>Index</th><th>Item Name</th>
<th>Description</th></tr></thead><tbody>";

var doc = top.frames['bsscright'].document;
titleArray = doc.getElementsByTagName('dt');
descArray = doc.getElementsByTagName('dd');

for (var i = 0; i < titleArray.length; i++) {
  myTable+="<tr><td>" + i + "</td>";
  myTable+="<td>" + titleArray[i].innerText + "</td>";
  myTable+="<td>" + descArray[i].innerText + "</td></tr>";
}

myTable+="</thead></table>";

document.getElementsByClassName('body').innerHTML = myTable;
var titleArray=[];
var descArray=[];
var myTable=“IndexItem Name
说明”;
var doc=顶部框架['bscright'].文档;
titleArray=doc.getElementsByTagName('dt');
descArray=doc.getElementsByTagName('dd');
对于(var i=0;i

有人能告诉我为什么.innerHTML=只是将我的表格以文本形式输出到控制台,而不是将我的表格写入页面吗?

使用
querySelector
获取第一个
body
类,这似乎就是您想要的

document.querySelector('.body').innerHTML = myTable;
否则,您将设置返回的集合的
.innerHTML
属性,而不是特定元素的属性


此外,还可以使用模板字符串使其更好

var doc = top.frames['bsscright'].document;
var titleArray = doc.getElementsByTagName('dt');
var descArray = doc.getElementsByTagName('dd');

var myTable = "<table><thead><tr><th>Index</th><th>Item Name</th>
<th>Description</th></tr></thead><tbody>";

for (var i = 0; i < titleArray.length; i++) {
  myTable += `<tr><td>${i}</td>
                  <td>${titleArray[i].textContent}</td>
                  <td>${descArray[i].textContent}</td></tr>`;
}

document.querySelector('.body').innerHTML = myTable+"</thead></table>";
var doc=top.frames['bscright'].document;
var titleArray=doc.getElementsByTagName('dt');
var descArray=doc.getElementsByTagName('dd');
var myTable=“IndexItem Name
说明”;
对于(var i=0;i
使用
querySelector
获取第一个
body
类,它似乎就是您想要的

document.querySelector('.body').innerHTML = myTable;
否则,您将设置返回的集合的
.innerHTML
属性,而不是特定元素的属性


此外,还可以使用模板字符串使其更好

var doc = top.frames['bsscright'].document;
var titleArray = doc.getElementsByTagName('dt');
var descArray = doc.getElementsByTagName('dd');

var myTable = "<table><thead><tr><th>Index</th><th>Item Name</th>
<th>Description</th></tr></thead><tbody>";

for (var i = 0; i < titleArray.length; i++) {
  myTable += `<tr><td>${i}</td>
                  <td>${titleArray[i].textContent}</td>
                  <td>${descArray[i].textContent}</td></tr>`;
}

document.querySelector('.body').innerHTML = myTable+"</thead></table>";
var doc=top.frames['bscright'].document;
var titleArray=doc.getElementsByTagName('dt');
var descArray=doc.getElementsByTagName('dd');
var myTable=“IndexItem Name
说明”;
对于(var i=0;i
您确定要设置具有类主体的元素的html,而不是文档的元素吗?您很可能在控制台中看到异常。试试document.body.innerHTML=MyTable你是说GetElementsByCassName还是getElementsByTagName?或者检查Dimitri comment。是否确实要设置具有类主体的元素的html,而不是文档的元素?您很可能在控制台中看到异常。试试document.body.innerHTML=MyTable你是说GetElementsByCassName还是getElementsByTagName?或者检查Dimitri comment。OP甚至可能只需要
querySelector('body')
(不带类,因为谁给它添加了一个名为
body
的类?@Andy:True。那里有些奇怪的事情。如果是这样的话,
document.body
也会起作用。OP甚至可能只需要
querySelector('body')
(没有这个类,因为谁给它添加了一个名为
body
的类?@Andy:True。那里有些奇怪的事情。如果是这样,
document.body
也会起作用。