Клонирование тега в JavaScript (обычный) - PullRequest
0 голосов
/ 15 марта 2010

Я хотел бы клонировать тег, используя Javascript (без использования каких-либо внешних структур, таких как jQueries, поэтому, пожалуйста, ограничьте ответ простым Javascript)

Вот мое требование. Скажем, у меня есть случайный div, подобный следующему в документе,

<div id='anEmptyDiv' style="display:none">
    <div>
      Lorem Ipsum
    </div>
</div>

И я должен быть в состоянии сделать что-то подобное,

var customDiv = document.getElementyById('anEmptyDiv');
var copyDiv = clone(customDiv);
copyDiv.id = 'a_valid_id';
copyDiv.style.display = 'block';

За этим вопросом стоит причина. У меня есть структурированный тег DIV, который я хочу использовать много раз, когда происходит какое-то событие. Мне нужна одна структура, и я не собираюсь создавать дерево DOM каждый раз. Возможно ли это в Javascript?

Ответы [ 2 ]

3 голосов
/ 15 марта 2010

Вы можете попробовать функцию cloneNode:

var customDiv = document.getElementById('anEmptyDiv');
var copyDiv = customDiv.cloneNode(true);
copyDiv.id = 'a_valid_id';
copyDiv.style.display = 'block';
1 голос
/ 15 марта 2010

через http://www.w3schools.com/dom/dom_nodes_clone.asp

xmlDoc=loadXMLDoc("books.xml");

oldNode=xmlDoc.getElementsByTagName('book')[0];
newNode=oldNode.cloneNode(true);
xmlDoc.documentElement.appendChild(newNode);

//Output all titles
y=xmlDoc.getElementsByTagName("title");
for (i=0;i<y.length;i++)
{
document.write(y[i].childNodes[0].nodeValue);
document.write("<br />");
} 

Функция ключа здесь cloneNode

...