Оптионы еще и сортируются по имени, а value — это циферки. То есть, value идут не по порядку. Я об этом забыл.
А index записывать не получается, так как запоминается только последний index и если я перекину налево 5 элементов и начну вставлять их по этому индексу — они будут друг за другом.
Сделал циклом вот так (в option добавлен параметр data-num='номер по порядку в списке'):
$('#select1 option').live('click', function() {
var html = this.outerHTML;
$(this).remove();
$('#select2').append(html);
})
$('#select2 option').live('click', function() {
var html = this.outerHTML;
var index = $(this).data('num');
$(this).remove();
inserted = 0; // Задаем индикатор вставки оптиона
$('#select1 option').each(function() {
var ind = $(this).data('num');
if (index < ind) {
$(html).insertBefore(this);
inserted = 1; // Оптион был вставлен на место
return false;
}
})
if (inserted == 0) {$('#select1').append(html);} // Если не был вставлен - значит он
// последний в текущем списке, засовываем его в конец
})
Лучше пока ничего не придумал, и эта конструкция работает отлично. Спасибо за помощь!