我有以下代码。我试图通过将outerHTML设置为空('')来删除一个元素。我也对html集合做了一些研究,发现它是一个活的集合
参考:
所以我所知道的是,如果我更改文档,那么列表应该会更改。代码证明了这种行为,尽管我最初的 html 集合的长度为 9,但循环运行了 4 次。现在,当我用 innerHTML 替换 outerHTML 时,循环运行了 9 次。因此,如果列表应该随着文档的更改而更新,为什么当我用 innerHTML 替换 outerHTML 时不会发生这种情况
function expTble() {
let tables = document.getElementsByTagName("table")
let captions = document.getElementsByTagName("caption")
if (captions.length > 1) {
console.log(`${tables.length} tables ${captions.length} captions`)
for (let i = 0; i < captions.length; i++) {
console.log('index : ' + i)
captions[i].outerHTML = ''
}
return
}
for (let i = 0; i < tables.length; i++) {
// Do stuffs
TableExport(tables[i], { bootstrap: false })
}
}
这是我的结果
使用 outerHTML 时
9 tables 9 captions
index : 0
index : 1
index : 2
index : 3
index : 4
使用 innerHTML 时
9 tables 9 captions
index : 0
index : 1
index : 2
index : 3
index : 4
index : 5
index : 6
index : 7
index : 8