Добавить div в другой div в нескольких экземплярах с помощью jQuery

Я пытаюсь move весь div внутри другого div верхнего уровня с помощью jQuery. Для одного экземпляра этого действия предоставленный здесь ответ отлично работает здесь, но в моем случае у меня есть несколько экземпляров этих div, которые мне нужно переместить.

Когда я применяю приведенный выше код, все .film-desc рекурсивно перемещались в каждый .grid-item.

Действие должно запускаться с помощью: <span><i class = "fas fa-list"></i></span>

Пока код у меня должен выглядеть так:

$(".fa-list").click(function() {
  $(this).siblings().next(".film-desc").appendTo(".card-image");
})
<script src = "https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<span>
  <i class = "fas fa-list"></i>
</span>
<div class = "grid-item">
  <div class = "card">
    <div class = "card-image">
      <img src = "#">
      <div class = "card-data">
        <h5>1983</h5>
        <div>
          <span>Q: 6.3</span>
          <span>R: 6.8</span>
          <span>A: 3.6</span>
        </div>
        <div>
          <span>M</span>
          <span>N</span>
          <span>P</span>
        </div>
      </div>
    </div>
    <div class = "film-desc">
      content
    </div>
  </div>
</div>
<div class = "grid-item"></div>
<div class = "grid-item"></div>
<div class = "grid-item"></div>
<div class = "grid-item"></div>

У fa-list, как у вас есть разметка, 0 братьев и сестер.

Taplar 06.09.2018 17:09

Спасибо за комментарии. Должны ли люди из любопытства голосовать против, когда они делают комментарий? Я действительно попытался задать вопрос, fa-list был в моем первоначальном вопросе только потому, что я не включил его там, где ожидал you, тогда вы голосуете против? В любом случае спасибо за комментарий.

hello 06.09.2018 17:15

В вопросе упоминается использование fa-list и включен сценарий, который ссылается на него, однако он не был включен в разметку, чтобы показать, как сценарий будет (или должен) его использовать. Это определяет неполный / неоднозначный вопрос. Пока такая проблема не будет устранена, вопрос может быть отклонен. @hello Edit: также это полностью зависит от пользователей, хотят ли они проголосовать против вопроса или нет. Они заработали репутацию, за которую проголосовали против, они могут выбирать, стоит ли, по их мнению, ваш вопрос отрицать или нет.

Taplar 06.09.2018 17:19
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
2
3
54
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете перебрать их и переместить каждый в соответствующий div, например:

$(".fa-list").click(function(){
  $('.grid-item').each(function(){
    $(this).find(".film-desc").appendTo( $(this).find('.card-image') );
  });
})

Рабочий фрагмент:

$("button").click(function() {
  $('.grid-item').each(function() {
    $(this).find(".film-desc").appendTo($(this).find('.card-image'));
  });
})
.card-image {
  background-color: yellow;
  border: 1px solid;
}
<script src = "https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<button type = "button">Move divs</button>
<div class = "grid-item">
  <div class = "card">
    <div class = "card-image">
      <div class = "card-data">
        <div>
          <span>Q: 6.3</span>
          <span>R: 6.8</span>
          <span>A: 3.6</span>
        </div>
        <div>
          <span>M</span>
          <span>N</span>
          <span>P</span>
        </div>
      </div>
    </div>
    <div class = "film-desc">
      content
    </div>
  </div>
</div>
<br>
<div class = "grid-item">
  <div class = "card">
    <div class = "card-image">
      <div class = "card-data">
        <div>
          <span>Q: 6.3</span>
          <span>R: 6.8</span>
          <span>A: 3.6</span>
        </div>
        <div>
          <span>M</span>
          <span>N</span>
          <span>P</span>
        </div>
      </div>
    </div>
    <div class = "film-desc">
      content
    </div>
  </div>
</div>
<br>
<div class = "grid-item">
  <div class = "card">
    <div class = "card-image">
      <div class = "card-data">
        <div>
          <span>Q: 6.3</span>
          <span>R: 6.8</span>
          <span>A: 3.6</span>
        </div>
        <div>
          <span>M</span>
          <span>N</span>
          <span>P</span>
        </div>
      </div>
    </div>
    <div class = "film-desc">
      content
    </div>
  </div>
</div>
<br>
<div class = "grid-item">
  <div class = "card">
    <div class = "card-image">
      <div class = "card-data">
        <div>
          <span>Q: 6.3</span>
          <span>R: 6.8</span>
          <span>A: 3.6</span>
        </div>
        <div>
          <span>M</span>
          <span>N</span>
          <span>P</span>
        </div>
      </div>
    </div>
    <div class = "film-desc">
      content
    </div>
  </div>
</div>

Это работает именно так, как я хочу. Спасибо. Не уверен, что и почему вы получаете отрицательные голоса, но у меня это сработало. Спасибо.

hello 06.09.2018 17:12

@taplar не могли бы вы поделиться с нами причиной отклонения рабочего ответа?

Zakaria Acharki 06.09.2018 17:29

Другие вопросы по теме