Пока вокруг клонирования ведутся дискуссии, у программистов всё уже на конвейере :)
Для клонирования элемента есть метод clone()
, он создаст для вас клон элемента, и вы сможете его вставить в DOM используя любой из подходящих методов.
Мало того, если у вас там были обработчики событий, то их также можно клонировать, достаточно лишь выставить первый аргумент в true
:
$("h1").click(() => alert("h1!"))
// клон без обработчиков событий
$("h1").clone()
// клон с обработчиком событий
$("h1").clone(true)
метод | описание |
---|---|
| клонирует выбранные элементы, для дальнейшей вставки копий назад в DOM |
| клонирует выбранные элементы, вместе с текущими обработчиками событий и данными data() |
| клонирует также обработчики событий и данные дочерних элементов |
Кроме клонирования, вы можете изъять из DOM любой элемент, чтобы изменить и вставить назад, или вправе даже удалить его:
метод | описание |
---|---|
| изымает элемент из DOM, но при этом сохраняет все данные о нём в jQuery; следует использовать, если надо лишь временно удалить элемент |
| удаляет текст и дочерние DOM-элементы |
| насовсем удаляет элемент из DOM |
{% embed url="https://anton.shevchuk.name/book/code/dom.clone-and-other.html" %}