Получить дочерние элементы динамически загружаемых элементов - PullRequest
0 голосов
/ 15 марта 2012

У меня есть следующий код, который выведет дочерние элементы элемента "weather".

x=xmlDoc.getElementsByTagName("weather")[0].childNodes;

    for (i=0;i<x.length;i++) {  
        var parent = x[i].nodeName;
        document.write("<b>"+parent+"</b><br />");

    }

Это получит следующие дочерние элементы:

прогноз_информации, текущие_условия, прогноз_условий, прогноз_условий, прогноз_условий и прогноз_условий.

Теперь я хочувосстановить все дочерние элементы этих элементов.Вероятно, с циклом внутри цикла, поэтому я попытался сделать следующее:

for (i=0;i<x.length;i++) {  
    var parent = x[i].nodeName;
    document.write("<b>"+parent+"</b><br />");

    y=xmlDoc.getElementsByTagName(parent)[i].childNodes;

    for (h=0;h<y.length;h++) {
        var child = y[i].nodeName;
        document.write(child+"<br />");
    }
}

Но это не сработает .. Будет вывод:

прогноз_информации

город (7 раз)

current_conditions

Вот и все .. Любая помощь?

Заранее спасибо!

1 Ответ

0 голосов
/ 15 марта 2012

Не делайте еще один вызов getElementsByTagName. Просто используйте childNodes для каждого элемента в вашем цикле, чтобы получить дочерних детей:

var x = xmlDoc.getElementsByTagName("weather")[0].childNodes;
var xlen = x.length;

var i, j, y, ylen;
for (i = 0; i < xlen; i++) {  
    document.write("<b>" + x[i].nodeName + "</b><br />");

    y = x[i].childNodes;
    ylen = y.length;

    for(j = 0; j < ylen; j++) {
        document.write(y[j].nodeName + "<br />");
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...