2010-03-15 41 views
0

我想克隆使用Javascript标签标签(无需使用任何外部框架,如jQueries,所以请限制答案普通的JavaScript)克隆在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?

+0

如果你的空div行事像一个模板,那么我会建议你可以看看TrimPath js Template项目。 – Dapeng 2010-03-15 11:11:34

回答

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

+0

完美!这就是我一直在寻找的!谢谢! – bragboy 2010-03-15 10:54:21

+0

为什么downvote? OP说这是他正在寻找的东西...... – marcgg 2010-03-15 11:11:48

3

你可以尝试cloneNode功能:

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