Показать сообщение отдельно
  #1 (permalink)  
Старый 22.03.2020, 11:24
Аспирант
Отправить личное сообщение для shareware Посмотреть профиль Найти все сообщения от shareware
 
Регистрация: 04.11.2019
Сообщений: 32

Перестановка tr
Добрый день.

Помогите доработать, пожалуйста..

Задача: необходимо все tr с классом premium поставить поверх tr с классом not.

Структура таблицы
<table style="border: 1px solid black">
<thead >
  <th>ID</th>
  <th>Имя</th>
  <th>Фамилия</th>
  
</thead>
<tbody >
  <tr class="not">
    <td>1</td>
    <td>Антоша</td>
    <td>Антоша</td>
      <tr class="not-child">
        <td colspan=2 style="text-align: center">Ne</td>
      </tr>
  </tr>
    <tr class="premium">
    <td>2</td>
    <td>Серега</td>
    <td>Кочегарин</td>
     <tr class="premium-child">
      <td colspan=2 style="text-align: center">premium</td>
    </tr>
  </tr>
    <tr class="not">
    <td>3</td>
    <td>Саня</td>
    <td>Жопин</td>
     <tr class="not-child">
      <td colspan=2 style="text-align: center">Ne</td>
    </tr>
  </tr>
    <tr class="premium">
    <td>4</td>
    <td>Ваня</td>
    <td>Жлобин</td>
     <tr class="premium-child">
      <td colspan=2 style="text-align: center">premium</td>
    </tr>
  </tr>
</tbody>
</table>


Имеющийся скрипт..each() не обязателен..игрался с вариантами прост
$('tbody').each(function() {
if ($('tr').hasClass('premium'))
{
    $('.not, .not-child').insertAfter('.premium + .premium-child');
}
});


Для одного любого tr с классом premium работает идеально, но если их двое и более - начинается мракобесие
Ответить с цитированием