动态更新 HTA (VBS) 中的 table 行
Dynamically updating a table row in HTA (VBS)
经过研究,我发现要在 HTA 中动态更新 table,我需要添加 tbody
元素。我还可以看到,然后我需要使用 appendchild
函数将必要的数据/行添加到 table.
我已经这样做了,并且正在尝试使用下面的代码 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
我遇到的问题是我只看到我的数组的最后一个值附加到 table,几乎就像我缺少保存附加的命令并且它正在覆盖穿过的行?
我很清楚这不整洁,或者循环遍历数组的正确方法(应该使用 for i = 1 to UBound(ArrLogs)
等)——我正在测试不同的做事方式以防万一一个明显的错误。
trow.appendChild(tcol)
不会 copy tcol
到行;它向它插入一个 reference,这意味着你只有 one 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)
经过研究,我发现要在 HTA 中动态更新 table,我需要添加 tbody
元素。我还可以看到,然后我需要使用 appendchild
函数将必要的数据/行添加到 table.
我已经这样做了,并且正在尝试使用下面的代码 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
我遇到的问题是我只看到我的数组的最后一个值附加到 table,几乎就像我缺少保存附加的命令并且它正在覆盖穿过的行?
我很清楚这不整洁,或者循环遍历数组的正确方法(应该使用 for i = 1 to UBound(ArrLogs)
等)——我正在测试不同的做事方式以防万一一个明显的错误。
trow.appendChild(tcol)
不会 copy tcol
到行;它向它插入一个 reference,这意味着你只有 one 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)