Есть ли возможность переместить все дочерние элементы в другой элемент и удалить пустой?

109
07 апреля 2021, 23:10

У меня есть элемент

<ul>
 <li></li>
 <li></li>
 <li></li>
</ul>
<div></div>

Есть ли возможность переместить все дочерние элементы ul в div при этом удалить пустой элемент, чтобы получилась такая конструкция:

<div>
     <li></li>
     <li></li>
     <li></li>
</div>

Дополнения: требуется добавить children в shadowRoot. Вариант который меня устроил в данный момент использовать не div а template

<template>
         <li></li>
         <li></li>
         <li></li>
</template>

Дальше в коде делаю clone и копирую.

     let clone = document.importNode(el.content, true);
     el.parentNode.shadowRoot.appendChild(clone)
     el.remove()
Answer 1

Если брать именно Вашу разметку, то можно сделать например вот так:

let div = document.querySelector('div');
document.querySelector('ul li').forEach(li => div.append(li));
document.querySelector('ul').remove()

Однако, конечно надежнее использовать идентификаторы а не типы элементов, в качестве селекторов...

—-

Если Вас устраивает потеря слушателей на перемещаемых элементах, можно еще сделать вот так:

let div = document.querySelector('div');
let ul = document.querySelector('ul');
div.innerHTML = ul.innerHTML;
ul.remove()
READ ALSO
Удаление контекстного меню окна WPF

Удаление контекстного меню окна WPF

Мне необходимо сделать с помощью WPF окошко, у которого нет заголовкаКазалось бы все просто WindowStyle=None, но есть один большой подводный камень,...

125
Определить находится ли точка в области

Определить находится ли точка в области

Точка находится внутри области, попробывал несколько методов, все определяють, что она извне

93
Метод для поиска по разным столбцам

Метод для поиска по разным столбцам

У меня есть Form с ComboBox и TextBoxПервый содержит имена столбцов, второй содержит текст для поиска

126