中直接放置非单元格元素:这是 HTML5 规范强制要求,不是样式或渲染问题,而是解析阶段的语法修正。
异步加载建议使用 fetch() 而非 XMLHttpRequest:现代开发推荐更简洁、基于 Promise 的 fetch() API:async function loadTableContent() {
try {
const response = await fetch('/api/table-data');
const html = await response.text();
const container = document.createElement('div');
container.innerHTML = html; // 自动校验并规范结构
document.getElementById('target').appendChild(container.firstElementChild);
} catch (err) {
console.error('Failed to load table content:', err);
}
}总结:innerHTML 不是“原样粘贴”,而是HTML 解析 + DOM 构建过程。要确保传入的字符串符合 HTML 文档类型定义(DTD),尤其是表格相关元素的层级约束。结构合规,才能保证预期渲染效果。