#jquery #insert
#jquery #вставить
Вопрос:
у меня есть следующий html
<li class="cat-item cat-item-3 collapsable">
<div class="someclass"></div>
<a href="http://demo.mysite.com/category/parent-category-i/" title="View all posts filed under Parent Category I">
Parent Category I
</a>
<ul class="children">
<li class="cat-item cat-item-6">
<a class="" href="http://demo.mysite.com/category/parent-category-i/child-category-i/" title="View all posts filed under Child Category I">
Child Category I
</a>
</li>
<li class="parent cat-item cat-item-7 collapsable lastCollapsable">
<div class="someclass"></div>
<a href="http://demo.mysite.com/category/parent-category-i/child-category-ii/" title="View all posts filed under Child Category II">
Child Category II
</a>
<ul class="children">
<li class="cat-item cat-item-9 last">
<a href="http://demo.mysite.com/category/parent-category-i/child-category-ii/grandchild-category-i/" title="View all posts filed under Grandchild Category I">
Grandchild Category I
</a>
</li>
используя вышеупомянутые html и jquery, как можно добавить
<span class="folder">
после каждого класса li.parent и после каждого родительского тега привязки.
итак, наконец, приведенный выше html будет выглядеть так
<li class="cat-item cat-item-3 collapsable">
<div class="someclass"></div>
<a href="http://demo.mysite.com/category/parent-category-i/" title="View all posts filed under Parent Category I">
Parent Category I
</a>
<ul class="children">
<li class="cat-item cat-item-6">
<a class="" href="http://demo.mysite.com/category/parent-category-i/child-category-i/" title="View all posts filed under Child Category I">
Child Category I
</a>
</li>
<li class="parent cat-item cat-item-7 collapsable lastCollapsable">
<span class="folder"> // <-------------------- Want this
<div class="someclass"></div>
<a href="http://demo.mysite.com/category/parent-category-i/child-category-ii/" title="View all posts filed under Child Category II">
Child Category II
</a>
</span> // <------------------------ Closing span of what I Want
<ul class="children">
<li class="cat-item cat-item-9 last">
<a href="http://demo.mysite.com/category/parent-category-i/child-category-ii/grandchild-category-i/" title="View all posts filed under Grandchild Category I">
Grandchild Category I
</a>
</li>
это означает добавление класса span к каждому родительскому классу li и закрытие span в конце
Ответ №1:
Вы можете использовать wrapAll
для переноса дочерних элементов элемента:
$(".parent").children().wrapAll("<span class='folder' />");
Вот рабочий пример (проверьте вывод в Firebug / Developer tools, чтобы увидеть новый span
).
Обновление просмотрев код, я понял, что на самом деле вы хотите обернуть только некоторые дочерние элементы .parent
в new span
. Если это ваша окончательная структура HTML, то вы можете сделать это, предоставив селектор для children
:
$(".parent").children("div, a").wrapAll("<span class='folder' />");
Вот еще один пример.
Комментарии:
1. спасибо за вашу поддержку, но все равно не удалось получить желаемое result.my окончательный код и результат показаны в демонстрационной ссылке, указанной ниже. был бы признателен, если бы вы могли копнуть немного больше
Ответ №2:
Это должно сделать это. Функция-оболочка не будет работать, потому что вы пытаетесь обернуть несколько элементов одновременно.
var x = $('.parent.cat-item-7').contents();
$('.parent.cat-item-7').empty();
$('.parent.cat-item-7').append('<span class="folder"></span>');
$('.parent.cat-item7 .folder').append(x);
Комментарии:
1. Это обернет каждый дочерний элемент вместо всех дочерних элементов и будет дублировать текст: jsfiddle.net/hnwkb/1
2. @JamesAllardice Да, я заметил, что именно поэтому я его изменил 🙂 но все равно спасибо за предупреждение
3. почему я получаю неожиданный результат, который я не могу объяснить должным образом, не могли бы вы проверить здесь [ссылка] demo.mysimplewp.com/demo-collapsible-categories
Ответ №3:
Попробуйте приведенный ниже код для этого:
$("<span class='folder' />").appendTo('.parent');
Это заставит это произойти.
Комментарии:
1. Это просто вставит пустой
span
после всех дочерних элементов.parent
. OP хочет обернуть дочерние элементы.parent
.