a/20159238/1636522

by wared

HTML

<ul>
    <li class="odd">Odd 1</li>
    <li class="odd">Odd 2</li>
    <li class="odd">Odd 3</li>
    <li class="even">Even 1</li>
    <li class="even">Even 2</li>
    <li class="even">Even 3</li>
    <li class="even">Even 4</li>
</ul>

JavaScript

var $items = $('li');
var odd = $items.filter('.odd').get();
var even = $items.filter(':not(.odd)').get();
var mixed = [];
while (odd.length) {
    mixed.push(odd.shift());
    if (even.length) {
        mixed.push(even.shift());
    }
}
if (even.length) {
    mixed = mixed.concat(even);
}
$('ul').append(mixed);