在javascript(普通)中克隆标记

时间:2010-03-15 10:49:55

标签: javascript html clone

我想使用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 个答案:

答案 0 :(得分:3)

您可以尝试cloneNode功能:

var customDiv = document.getElementById('anEmptyDiv');
var copyDiv = customDiv.cloneNode(true);
copyDiv.id = 'a_valid_id';
copyDiv.style.display = 'block';

答案 1 :(得分:1)

通过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