【发布时间】:2017-08-15 20:53:30
【问题描述】:
当我尝试使用以下代码时,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;
谁能告诉我为什么 .innerHTML = 只是将我的表格以文本形式输出到控制台,而不是将我的表格写入页面?
【问题讨论】:
-
您确定要设置带有类正文的元素的 html,而不是文档的 元素吗?您很可能在控制台中看到异常。试试 document.body.innerHTML = myTable
-
您真的是指 getElementsByClassName 还是 getElementsByTagName?或查看 Dimitri 评论。
标签: javascript html innerhtml