gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 03:13:26 25 4
gpt4 key购买 nike

当我尝试使用以下代码时,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 = 只是以文本形式将我的表格输出到控制台,而不是将我的表格写入页面?

最佳答案

使用 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>";

关于javascript - innerHTML = var 写入控制台而不是页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45701365/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com