Html 动态更新HTA(VBS)中的表行

Html 动态更新HTA(VBS)中的表行,html,vba,vbscript,hta,Html,Vba,Vbscript,Hta,研究之后,我发现要动态更新HTA中的表,我需要添加tbody元素。我还可以看到,然后我需要使用appendchild函数向表中添加必要的数据/行 我已经这样做了,正在尝试使用下面的代码循环一个数组ArrLogs Dim i i = 1 Set table = document.getElementById("maintable") Set tbody = document.createElement("tbody") table.appendChild(tbody) Set trow =

研究之后,我发现要动态更新HTA中的表,我需要添加
tbody
元素。我还可以看到,然后我需要使用
appendchild
函数向表中添加必要的数据/行

我已经这样做了,正在尝试使用下面的代码循环一个数组
ArrLogs

Dim i
i = 1
Set table = document.getElementById("maintable") 
Set tbody = document.createElement("tbody") 
table.appendChild(tbody) 
Set trow = document.createElement("tr") 
Set tcol = document.createElement("td") 

ArrLogs = ReadLogs(computerasset.value)

Do Until i = UBound(ArrLogs)
       tcol.innerHTML = ArrLogs(i) 
       trow.appendChild(tcol) 
       tbody.appendChild(trow)
       table.appendChild(tbody)  
       i = i+1
Loop
我遇到的问题是,我只看到附加到表中的数组的最后一个值,就好像我丢失了一个保存附加的命令,并且它在运行时覆盖了行一样

我很清楚,这不是整洁的,也不是通过数组循环的正确方法(应该使用
for I=1来UBound(ArrLogs)
等)-我在测试不同的方法,以防我犯了明显的错误。

trow.appendChild(tcol)
不会将
tcol
复制到行中;它插入对它的引用,这意味着您只有一个不断覆盖的
tcol
,例如,下面的代码将显示B而不是a

Set p = document.createElement("p") 
p.innerHTML = "A"
document.body.appendChild(p)
p.innerHTML = "B" 
要解决此问题,请在循环中创建新元素:

Dim i: i = 0

Set tbody = document.createElement("tbody") 

ArrLogs = ReadLogs(computerasset.value)

for i = lbound(ArrLogs) to ubound(ArrLogs)
    Set trow = document.createElement("tr") 
    Set tcol = document.createElement("td") 

    tcol.innerHTML = ArrLogs(i) 
    trow.appendChild(tcol)
    tbody.appendChild(trow)
Next

document.getElementById("maintable").appendChild(tbody)

刚刚测试过,这正是我想要的。我现在可以看到我是如何插入一个将被覆盖的引用的,但是我不明白为什么我没有将它的
I
副本写入表中?