动态生成的表格重载后格式异常,Promise化Ajax处理仍未解决
动态表格重载错乱修复方案
核心问题原因
表格格式错乱的根本原因是重载操作未完全清除上一次生成的动态内容,导致新旧内容叠加、行列数量不匹配:
- 每次刷新时,
loadExerciseDetails都会向#tableHeadersSet追加3组表头,但旧表头未被清空,多次刷新后表头列数持续累加 exerciseFirstColumnDetails中用$('#exerciseTable tr').empty()仅会清空所有行的内部内容,不会删除之前动态生成的ExerciseDetail前缀的行,多次刷新后行数据叠加,和表头列数无法对应
修复代码
仅需修改exerciseFirstColumnDetails方法的表格清空逻辑,替换原有清空代码即可:
function exerciseFirstColumnDetails() { // 清空旧表头列 $('#tableHeadersSet').empty(); // 删除上一次生成的所有动态训练行 $('#exerciseTable tr[id^="ExerciseDetail"]').remove(); // 清空插入按钮行的残留内容 $('#InsertSet').empty(); var numExeDetails = 0; // 下方原有逻辑保持不变 // ... }
可选优化
如果后续需要进一步规避异步时序问题,可以将loadExerciseDetails也改造为Promise方法,确保所有异步操作的执行顺序可控。
内容的提问来源于stack exchange,提问作者Glyn
相关产品推荐
相关产品推荐

