Использование JS для отображения XML в виде таблицы в HTML показывает только одну строку

0

В приведенном ниже коде показана только первая строка таблицы, она не отображает остальные элементы XML файла. Понятия не имею почему.

Edit: Я вижу, что часть проблемы заключается в том, что vegTable является переменной. Мне нужна функция в цикле for.

Изменить 2: теперь я могу увеличивать таблицу, чтобы получить нужное количество строк, но первая строка данных - это все, что отображается, несколько раз.

JSFiddle

function getVeggies() {
"use strict";
var veg, sci, vegTable;
veg = (cc[dd].getElementsByTagName("veg")[0].childNodes[0].nodeValue);
sci = (cc[dd].getElementsByTagName("sciname")[0].childNodes[0].nodeValue);

for (dd = 0; dd < cc.length; dd++) {

vegTable += "<tr><td>" + veg + "</td><td>" + sci + "</td></tr>";
}

document.getElementById('fullTable').innerHTML = vegTable;
dd = 0;
}
  • 1
    Можете ли вы показать нам пример строки XML и настроить jsfiddle
  • 0
    JSFiddle Это XML и полный JS-скрипт, более или менее. Я исправил мою проблему с приращением, изменив vegTable = на vegTable + =, но теперь он показывает только первую строку четыре раза.
Теги:
html-table
row

1 ответ

0
Лучший ответ

Попробуйте переместить элемент, получая логику в цикл:

function getVeggies() {
    "use strict";
    var veg, sci, vegTable;
    var cc = cc;//whats cc?

    for (var i = 0; i < cc.length; i++) { 
        veg = (cc[i].getElementsByTagName("veg")[0].childNodes[0].nodeValue);
        sci = (cc[i].getElementsByTagName("sciname")[0].childNodes[0].nodeValue);

        vegTable += "<tr><td>" + veg + "</td><td>" + sci + "</td></tr>";
    }

    document.getElementById('fullTable').innerHTML = vegTable;
}
  • 0
    Вот и все! Спасибо! 'cc' является глобальной переменной.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню