@Vartmod

Как поменять местами два блока на сайте, если они встречаются несколько раз?

У меня такая проблема: при помощи django в цикле собираю следующий шаблон, чередуя news-block-1 и news-block-2
<div class="news-block news-block-1">
    <table class="newspaper">
    <tbody><tr>
       <th class="picture-news"></th>
       <th class="text-news"></th>
    </tr>
    </tbody></table>
</div>
<div class="news-block news-block-2">
   <table class="newspaper">
   <tbody><tr>
      <th class="picture-news"></th>
      <th class="text-news"></th>
   </tr>
   </tbody></table>
</div>
<div class="news-block news-block-1">
   <!-- ... -->
</div>
<div class="news-block news-block-2">
   <!-- ... -->
</div>
<!-- ... -->

А затем в news-block-2 меняю местами "picture-news" и "text-news" следующим кодом:
let picture = $( ".news-block-2" ).find(".picture-news");
let text = $( ".news-block-2" ).find(".text-news");
picture.insertAfter(text);

По итогу картинка из первого news-block-2 вставляется во все остальные, а мне нужно, чтобы строки таблицы менялись местами в каждом news-block-2. Как это сделать?
  • Вопрос задан
  • 94 просмотра
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
$('.news-block-2').each((i, n) => $('.text-news', n).after($('.picture-news', n)));

или

$('.news-block-2 tr').append(function() {
  return $('.picture-news', this);
});

или

$('.news-block-2 .text-news').each((i, n) => $(n).parent().prepend(n));

или

$('.news-block-2 .picture-news').before(function() {
  return $(this).next();
});
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы