Элемент jquery move для последнего дочернего положения - программирование
Подтвердить что ты не робот

Элемент jquery move для последнего дочернего положения

Скажем, у меня есть <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;}
4b9b3361

Ответ 1

Try

var mydiv = $('my-div-selector');
mydiv.find('.myUniqueElement').appendTo(mydiv)

или просто

$('my-div').append($('.myUniqueElement'))

Ответ 2

Нет необходимости использовать .insertAfter. Вы также не должны использовать .clone, поскольку он удалит любые прикрепленные данные или события, если вы не используете .clone(true).

Просто используйте .appendTo, чтобы добавить целевой элемент в div, и он будет отсоединен от исходной позиции и добавлен в качестве последнего дочернего элемента div:

$('.myUniqueElement').appendTo('#my-div');

Ответ 3

Это мое решение, и я думаю, что это лучший способ использовать .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/

Ответ 4

Нет необходимости вызывать $ более одного раза, просто переместите элемент в конец его родителя:

var myEl = $('.my-el-selector');
myEl.appendTo(myEl.parent());

Ответ 5

Чтобы использовать insertAfter(), вы должны знать элемент, после которого вы хотите переместить свой элемент. И, как вы сказали, у вас есть случайные элементы, и, конечно же, вы не знаете текущий последний элемент, так что вот что вы можете сделать.

Клонировать свой элемент, который вы хотите переместить, и добавить его к родительскому элементу.

Код jQuery выглядит следующим образом:

$clone_elem = $('.myUniqueElement').clone();
$('.myUniqueElement').remove();
$('div').append($clone_elem);

Оформить заказ fiddle

Ответ 6

Викас прав. Однако, вероятно, это улучшенная версия, поскольку исходный элемент удален, а не его клон....

    $elem = $('.myUniqueElement')
    $('div').append($elem.clone());
    $elem.remove();