Как обернуть все дочерние элементы?

0

У меня есть:

<div>
  <a> //this
    <span>sometext<span> //problem
  </a>
  <a></a> //this
  <a></a> //this
  <span>sometext</span> //this
  <div><div>
  <input>
</div>

Мне нужно обернуть отмеченные элементы и получить результат следующим образом:

<div>
  <div> //wrapped
    <a> 
      <span>sometext<span> 
    </a>
    <a></a> 
    <a></a> 
    <span>sometext</span>
  </div> //wrapped
    <div><div>
    <input>

</div>

Но когда я делаю это с помощью $("div a, div span").wrapAll("<div></div>"); его span от a но я не писал div a span. Поэтому я получаю следующее:

<div>
  <div> //wrapped
    <a>       
    </a>
    <span>sometext<span> //need to be child of tag a
    <a></a> 
    <a></a> 
    <span>sometext</span>
  </div> //wrapped
    <div><div>
    <input>

</div>
  • 0
    api.jquery.com/wrapAll
  • 0
    У вас нет правильных начальных и конечных тегов .... также <span>sometext<span>
Показать ещё 1 комментарий
Теги:
dom

2 ответа

-1
Лучший ответ

Но лучше добавить класс/какой-либо другой идентификатор в контейнер div

<div class="someclass">
    <a> //this
        <span>sometext</span> //problem
    </a>
    <a></a> //this
    <a></a> //this
    <span>sometext</span> //this
    <div></div>
    <input />
</div>

тогда

$("div.someclass").children("a, span").wrapAll("<div />");

Демо: скрипка

0

Вы должны сделать это по классу: $(".classname").wrapAll(""); и добавьте класс classname в свой первый div

Ещё вопросы

Сообщество Overcoder
Наверх
Меню