Мне нужно выбрать все элементы a обернуть кадлый из них в li и добавить в ul с id="menu" .
Делаю так, но не работает.
$('#toplinks a').clone().wrap('<li>').appendTo('#menu');
#toplinks a {
display: block;
}
#menu li {
display: block;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<p id="toplinks">
<a>Главная</a>
<a>Бланк заказа</a>
<a>Прайс лист</a>
</p>
<ul id="menu">
</ul>
То есть a дублируются, но не оборачиваются в li (каждый из них).
В справке по функции wrap
This method returns the original set of elements for chaining purposes.
Этот метод возвращает оригинальный набор, для продолжения работы с ним.
Таким образом, делая после wrap -> appendTo в элемент добавляются клонированные ссылки, а не элементы li. Для исправления, добавлять нужно родителей текущих элементов. Их можно получить с помощью функции parent
Пример:
$('#toplinks a').clone().wrap('<li>').parent().appendTo('#menu');
#toplinks a {
display: block;
}
#menu li {
display: block;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<p id="toplinks">
<a>Главная</a>
<a>Бланк заказа</a>
<a>Прайс лист</a>
</p>
<ul id="menu">
</ul>
$('#toplinks a').clone().appendTo('#menu').wrap('<li></li>');
#toplinks a {
display: block;
}
#menu li {
display: block;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<p id="toplinks">
<a>Главная</a>
<a>Бланк заказа</a>
<a>Прайс лист</a>
</p>
<ul id="menu">
</ul>
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости