Может быть можно как то элегантнее решить данную задачу?
Разумеется, можно. Достаточно понять, что вам нужно не строки таблицы сортировать, а
данные. И уже данные потом рендерить.
Данные должны контролировать DOM, а не наоборот. Такой подход позволит не только существенно ускорить работу приложения (избавляемся от ненужных операций с DOM-элементами), но и сделает код более понятным и расширяемым.
Для этого можно
использовать любой mvvm-фреймворк или написать все самому, если такая таблица одна, функционал ограничивается только сортировкой и по каким-то причинам не хочется использовать готовые инструменты.
Посмотрите, например, как просто, а главное понятно, ваша задача
решается при помощи Backbone. Приложение разделено на слои и разбито на части, каждый слой и каждая часть занимаются своим делом.
Само собой, это quick'n'dirty демо, там могут быть ошибки, так что не стоит использовать этот код в продакшене :)