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



经过研究,我发现要在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 to UBound(ArrLogs)等)——我正在测试不同的做事方式,以防我犯了明显的错误。

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

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)

相关内容

  • 没有找到相关文章

最新更新