Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Создание дубликата элемента (https://javascript.ru/forum/misc/45522-sozdanie-dublikata-ehlementa.html)

Sivik 04.03.2014 10:35

Создание дубликата элемента
 
всем привет)

прошу помочь с таким вопросом:
как создать точную копию элемента, со всеми его атрибутами и пр.?

к примеру есть элемент

<input name="name" type="text" placeholder="" title="какой-то текст" id="id" required>


нужно создать точную копию элемента, но без прибегания каждый раз к createElement и его setAttribute, ибо слишком много кода.

заранее спасибо)

danik.js 04.03.2014 10:39

cloneNode()

Sivik 05.03.2014 10:29

о, спасибо большое)

и ещё один вопрос. как клонировать элемент, но указать, что один из атрибутов будет иметь иное значение?

danik.js 05.03.2014 10:43

Склонировать, и указать новое значение атрибута.

ruslan_mart 05.03.2014 10:44

Ну так просто укажите клонированному элементу своё значение атрибута.

var elem = document.getElementById('id'),
    newElem = elem.clone;

newElem.name = 'new-name';

ruslan_mart 05.03.2014 10:45

danik.js, блин, опередил. :)

Sivik 05.03.2014 11:16

спасибо вам, ребята) помогаете чайнику)

кстати, а можно ли указать не конкретно клонируемому элементу, а его потомкам? при клонировании целого дерева элементов

Aetae 05.03.2014 11:22

.cloneNode(true)
клонирует и детей.
А дальше - склонированая нода - точно такая же как и любая другая, и методы работы с ней те же.

Sivik 05.03.2014 11:32

не совсем понял(

к примеру, клонируется форма:

<form id="id1">
    <select name="name1">
        <option value="1">вариант 1</option>
        <option value="2">вариант 2</option>
        <option value="3">вариант 3</option>
    </select>
</form>


клонируется всё, это понятно. я знаю теперь, как задать другой айдишник клону формы. но возник вопрос: как достучаться, к примеру, до селекта и изменить нейм, или даже до опшина?

надеюсь, правильно объяснил

danik.js 05.03.2014 11:37

И на кой хер тогда делать клон если в итоге ты все переиначиваешь?
Просто создай форму, в ней селект и нафигачь опшнов.


Часовой пояс GMT +3, время: 14:07.