2010-03-15 40 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';