var containers = [1,2,3,4].map(n => document.getElementById('draggable_row_container_' + n)); function compare(a, b) { return +b.id.split('_')[2] - a.id.split('_')[2]; } function worst(l) { var nl = []; var halfl = l.slice(0, (l.length / 2)|0).reverse(); var rest = l.slice(halfl.length).reverse(); for (var i = 0; i < halfl.length; i++) { nl.push(halfl[i]); nl.push(rest[i]); } return nl; } function fixContainer(c) { var children = Array.prototype.filter.call(c.childNodes, a => !!a.id); children = worst(children.sort(compare)); c.innerHTML = children.map(child => child.outerHTML).join(' '); } containers.forEach(c => fixContainer(c));