Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Перенос дочерних элементов в списке родителей (https://javascript.ru/forum/jquery/70976-perenos-dochernikh-ehlementov-v-spiske-roditelejj.html)

emptyindorill 16.10.2017 16:27

Перенос дочерних элементов в списке родителей
 
Добрый день.

Есть список элементов, разделяющихся только содержанием:

https://jsfiddle.net/q6frszrs/1/

У каждого элемента своя картинка.

Подскажите пожалуйста, как перенести элемент (картинку) внутри своего родителя в блок .head в этом же блоке, где и картинка?

С единичным переносом проблем нет, а вот что бы в списке происходила функция внутри каждого элемента отдельно - хз.

Заранее спасибо.

ksa 16.10.2017 16:33

Цитата:

Сообщение от emptyindorill
как перенести элемент (картинку) внутри своего родителя в блок .head в этом же блоке, где и картинка?

Как вариант...

<!DOCTYPE html>
<html>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=windows-1251' />
<script src='https://code.jquery.com/jquery-latest.js'></script>
<!--
<script src="https://code.angularjs.org/1.3.9/angular.min.js"></script>
<script src="https://code.angularjs.org/1.3.9/angular-route.js"></script>
-->
<style type='text/css'>
.parent {
  margin: 5px;
  padding: 5px;
  border: 1px solid;
  width: calc(33% - 24px);
  display: inline-block;
  vertical-align: top;
  text-align: center;
}
.head {
  border: 1px solid green;
}
.content {
  border: 1px solid red;
}
</style>
<script type='text/javascript'>
$(function(){
	$('img').each(function(){
		$(this).parents('.parent').find('.head').append(this);
	});
});
</script>
</head>
<body>
<div class="list">
<div class="parent">
      <div class="head"></div>
      <div class="content">
            <img src="http://via.placeholder.com/100x100">
            <p>some text</p>
      </div>
</div>
<div class="parent">
      <div class="head"></div>
      <div class="content">
            <img src="http://via.placeholder.com/150x100">
            <p>some text 2</p>
      </div>
</div>
<div class="parent">
      <div class="head"></div>
      <div class="content">
            <img src="http://via.placeholder.com/100x150">
            <p>some text 3</p>
      </div>
</div>
</div>
</body>
</html>

emptyindorill 16.10.2017 16:49

С первым элементом всё работает, а с остальными нет.

Вот более правильный вид верстки: https://jsfiddle.net/xwrqgzg6/9/

ksa 16.10.2017 16:57

Цитата:

Сообщение от emptyindorill
С первым элементом всё работает, а с остальными нет.

Ты запускал мой пример?
Там все картинки в зеленых прямоугольниках, не красных. :stop:

ksa 16.10.2017 17:02

Цитата:

Сообщение от emptyindorill
Вот более правильный вид верстки: https://jsfiddle.net/xwrqgzg6/9/
$('.company_news .wiki-content img:eq(0)')

Это что за селектор? :blink:
Твоя "выборка" ничего не находит в твоем примере... :no:

ksa 16.10.2017 17:03

Как вариант...

<!DOCTYPE html>
<html>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=windows-1251' />
<script src='https://code.jquery.com/jquery-latest.js'></script>
<!--
<script src="https://code.angularjs.org/1.3.9/angular.min.js"></script>
<script src="https://code.angularjs.org/1.3.9/angular-route.js"></script>
-->
<style type='text/css'>
blog-post-listing {
  margin: 5px;
  padding: 5px;
  border: 1px solid;
  width: calc(33% - 24px);
  display: inline-block;
  vertical-align: top;
  text-align: center;
}
.logo-heading-block {
  background: green;
  min-height: 10px;
}

</style>
<script type='text/javascript'>
$(function(){
  $('.wiki-content img').each(function() {
	alert(1)
    $(this).parents('.blog-post-listing').find('.logo-heading-block').append(this);
  });
});
</script>
</head>
<body>
<div class="blog-post-listing">
  <div class="logo-heading-block"></div>
  <div class="wiki-content">
    <img src="http://via.placeholder.com/100x100">
    <p>text</p>
  </div>
</div>
<div class="blog-post-listing">
  <div class="logo-heading-block"></div>
  <div class="wiki-content">
    <img src="http://via.placeholder.com/100x100">
    <p>text</p>
  </div>
</div>
<div class="blog-post-listing">
  <div class="logo-heading-block"></div>
  <div class="wiki-content">
    <img src="http://via.placeholder.com/100x100">
    <p>text</p>
  </div>
</div>
</body>
</html>

emptyindorill 16.10.2017 17:29

У меня wiki-движок, к коду плагинов которого я не имею доступа(

А селектор eq(0) - это js альтернатива :first-child.

Нет возможности картинку выделить как то или отделить от общего текста и других картинок.

А их может быть несколько, вот и выбираю так.

В принципе работает, теперь только ещё костылями подпилить и норм.

Спасибо.

ksa 17.10.2017 08:29

Цитата:

Сообщение от emptyindorill
А селектор eq(0) - это js альтернатива :first-child.

Весь твой селектор ничего не находит в твоем примере.

emptyindorill 07.11.2017 17:25

Спасибо тебе милчеловек)
В другой задаче помог твой пример.


Часовой пояс GMT +3, время: 04:58.