2015-11-17 5 views
4

После исследования я вижу, что для динамического обновления таблицы в HTA мне нужно добавить элемент tbody. Я также вижу, что тогда мне нужно использовать функцию appendchild, чтобы добавить необходимые данные/строки в таблицу.Динамическое обновление строки таблицы в HTA (VBS)

Я сделал это, и я пытаюсь перебрать массив 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 

Проблема у меня в том, что я только видел последнее значение моего массива приложенный к таблицу, как будто мне не хватает команды для сохранения append и она переписывает строку по мере ее прохождения?

Я очень убежден, что это не аккуратно, или правильный путь к переходу через массив (следует использовать for i = 1 to UBound(ArrLogs) и т. Д.). Я тестировал различные способы делать вещи на случай, если я совершу очевидную ошибку.

ответ

2

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) 
+0

Просто испытано, и что сделал именно то, что я ищу. Теперь я могу видеть, как я вставлял ссылку, которая была бы перезаписана, однако я не понимаю, почему у меня не было 'i' копий, написанных в таблице? –

Смежные вопросы