Ответ 1
Try
var mydiv = $('my-div-selector');
mydiv.find('.myUniqueElement').appendTo(mydiv)
или просто
$('my-div').append($('.myUniqueElement'))
Скажем, у меня есть <div>
, который содержит некоторые случайные элементы, но есть один элемент, который я создал с помощью этого уникального селектора: $('.myUniqueElement')
. Я хочу использовать .insertAfter()
для перемещения этого элемента в последнюю дочернюю позицию в моем <div>
, возможно ли это? Каково решение?
Это мое решение: http://jsfiddle.net/silverlight/RmB5K/3/ - это нормально?
HTML:
<div class='p'>
<div class='myUniqueElement'>unique</div>
<div>item</div>
<div>item</div>
<div>item</div>
</div>
<input type='button' id='b' value='Do'/>
JavaScript:
$('#b').on('click',function(){
$('.myUniqueElement').insertAfter($('.p :last-child'))
});
CSS
.myUniqueElement{color:red;}
Try
var mydiv = $('my-div-selector');
mydiv.find('.myUniqueElement').appendTo(mydiv)
или просто
$('my-div').append($('.myUniqueElement'))
Нет необходимости использовать .insertAfter
. Вы также не должны использовать .clone
, поскольку он удалит любые прикрепленные данные или события, если вы не используете .clone(true)
.
Просто используйте .appendTo
, чтобы добавить целевой элемент в div
, и он будет отсоединен от исходной позиции и добавлен в качестве последнего дочернего элемента div
:
$('.myUniqueElement').appendTo('#my-div');
Это мое решение, и я думаю, что это лучший способ использовать .insertAfter()
:
HTML:
<div class='p'>
<div class='myUniqueElement'>unique</div>
<div>item</div>
<div>item</div>
<div>item</div>
</div>
<input type='button' id='b' value='Do'/>
JQuery
$('#b').on('click',function(){
$('.myUniqueElement').insertAfter($('.p :last-child'))
});
Точка :last-child
и это скрипка:
http://jsfiddle.net/silverlight/RmB5K/3/
Нет необходимости вызывать $ более одного раза, просто переместите элемент в конец его родителя:
var myEl = $('.my-el-selector');
myEl.appendTo(myEl.parent());
Чтобы использовать insertAfter()
, вы должны знать элемент, после которого вы хотите переместить свой элемент. И, как вы сказали, у вас есть случайные элементы, и, конечно же, вы не знаете текущий последний элемент, так что вот что вы можете сделать.
Клонировать свой элемент, который вы хотите переместить, и добавить его к родительскому элементу.
Код jQuery выглядит следующим образом:
$clone_elem = $('.myUniqueElement').clone();
$('.myUniqueElement').remove();
$('div').append($clone_elem);
Оформить заказ fiddle
Викас прав. Однако, вероятно, это улучшенная версия, поскольку исходный элемент удален, а не его клон....
$elem = $('.myUniqueElement')
$('div').append($elem.clone());
$elem.remove();