JQuery: appendTo parent

Я не могу заставить appendTo работать. Что я делаю неправильно?

$('div:nth-child(2n) img').appendTo(parent);

Текущая разметка:

<div class="container">
  <img src="123.jpg" />
  <p>Hey</p>
</div>
<div class="container">
  <img src="123.jpg" />
  <p>Hey</p>
</div>

Я хочу этот вывод:

<div class="container">
  <p>Hey</p>
  <img src="123.jpg" />
</div>
<div class="container">
  <p>Hey</p>
  <img src="123.jpg" />
</div>

Пожалуйста, помогите мне, ребята... Я разрываю волосы каждую минуту..: -S

Ответы

Ответ 1

Достаточно следующего:

$("div>img").each(function(){
    $(this).appendTo($(this).parent());
});

Посмотрите, как он работает здесь: http://jsfiddle.net/EtxqL/

Вы не можете вывести родительский элемент каждого из параметра 'selector' в appendTo(). Единственный способ сделать то, что вы хотите, - это перебрать элементы, добавив их к родительскому. Ознакомьтесь с API в следующей ссылке.

.appendTo() API

.each API

Ответ 2

Это то, что вам нужно?

$('.container > img').each(function () {
    $(this).parent().append(this);
});

Он просто принимает <img> внутри каждого контейнера и перемещается в качестве первого дочернего элемента контейнера.

Ответ 3

Вы можете использовать . prepend() вместо добавления Добавьте конец в конец родителя. Но добавьте вставку в начале от родителя. так что, например:

$('.container > p').each(function () {
    $(parent).prepend(this);
});