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);
});
Ответ 4
Я сделал небольшой пример и надеюсь, вы имеете в виду то же самое...
$(document).ready(function() {
$('.container > img').each(function() {
$(this).parent().append(this);
});
});