getElementById --> getElementsByTagName --> outputHTML --> Перевернуть

Рейтинг: 0Ответов: 2Опубликовано: 08.04.2015

Есть исходный код http://jsfiddle.net/wzwewr6d/1/

var a = document.getElementById('file_estimates_rus'), 
    b = document.getElementById("file_theme_estimates_rus").getElementsByTagName("span");
for (var i=0; i < b.length; i++) { a.innerHTML += b[i].outerHTML; }
<table border=1 cellpadding=10>
    <tr id="file_theme_estimates_rus">
        <td><span class="five">5</span></td>
        <td></td>
        <td><span class="two">2</span></td>
        <td><span class="three">3</span></td>
        <td></td>
        <td></td>
    </tr>
    <tr>
        <td id="file_estimates_rus"></td>
    </tr>
</table>

В итоге получается "5 2 3"

А что сделать, чтобы получалось "3 2 5", наоборот?

Ответы

▲ 1

Используйте обратный цикл:

for (var i = b.length; i-- ;) { a.innerHTML += b[i].outerHTML; }

ДЕМО: http://jsfiddle.net/wzwewr6d/2/

▲ 1

Я бы рекомендовал использовать операцию с DOM элементами, вместо innerHTML+= т.к. изменении innerHTML удаляются все узлы, а потом создаются новые.

Обновленное решение, который предложил пользователь VisioN:

for (var i = b.length; i-- ;) { 
    a.appendChild(b[i].cloneNode(true));
}

https://jsfiddle.net/wzwewr6d/3/