Функция jQuery .after печатает вместо перемещения?

#jquery

#jquery

Вопрос:

У меня есть несколько элементов подменю, которые я хочу переместить в мобильное меню, поэтому я перемещаю требуемые <li> «s, чтобы они больше не были дочерними, а были братьями и сестрами. Это продолжает печатать ‘li.mftopmenu’ вместо перемещения элементов. Я тоже пробовал .insertafter , но это просто клонирует их, а затем перемещает.

 jQuery('li.mfsubmenu').after('li.mftopmenu');
 

Комментарии:

1. Исправлено!! Не так элегантно, но я просто пронумеровал все элементы. jQuery('li.mfsubmenu1').insertAfter(jQuery('li.mftopmenu')); jQuery('li.mfsubmenu2').insertAfter(jQuery('li.mftopmenu')); jQuery('li.mfsubmenu3').insertAfter(jQuery('li.mftopmenu')); jQuery('li.mfsubmenu4').insertAfter(jQuery('li.mftopmenu')); jQuery('li.mfsubmenu1').not(':last').remove(); jQuery('li.mfsubmenu2').not(':last').remove(); jQuery('li.mfsubmenu3').not(':last').remove(); jQuery('li.mfsubmenu4').not(':last').remove();

2. рад, что у вас есть решение.. Но вы не сказали мне, что у вас есть этот класс несколько раз внутри DOM .. ха .. 🙂

3. ХА. Извините. Я полностью самоучка в jQuery, поэтому мои решения не всегда … оптимизированы, если не сказать больше. ЕЩЕ РАЗ СПАСИБО!!!

Ответ №1:

Попробуйте передать element не строку, другими словами, строку селектора,

 jQuery('li.mfsubmenu').after(jQuery('li.mftopmenu'));
 

Комментарии:

1. Никогда бы не подумал вложить часть jQuery. Это сделало то же самое, что и .insertafter , он клонировал их, а затем установил их.

2. @RobertFBoord Какую версию jquery вы используете ..? Он должен перемещать эти элементы.. можете ли вы воспроизвести это на скрипке ..?

3. @RobertFBoord а как насчет этого ..? jsfiddle.net/2Vd4g/1 вы забыли добавить библиотеку Jquery..

4. Спасибо! Я не часто использовал fiddle. Это работает в скрипке, но по какой-то причине не на сайте.

5. Отрицательно. Он перемещает указанный <li> из родительского <ul>, но не из родительского <li>, И он все еще клонирует их.