2011-01-11 6 views
3

Ich versuche, ein Div in reinem Javascript zu klonen, führt jedoch CloneNode zu doppelte IDs (div_0). Ich möchte die ID als div_1, div_2 erhöhen ... und das gleiche tun = someVar { 'elem', 'div_1'} ... DankeKlonen Elemente [div] [Skript] in Javascript

<html> 
<head></head> 
<body> 
<div id="mydiv"> 
    <div id="div_0"> 
     <script type="text/javascript"> 
      <!-- 
      somevar = {'elem', 'div_0'}; 
      //--> 
     </script> 
     <p>HELLO</p> 
    </div> 
</div> 

<a href="#" onclick="cloning()">CLONE</a> 

<script type="text/javascript"> 
    function cloning() { 
     var container = document.getElementById('mydiv'); 
     var clone = document.getElementById('div_0').cloneNode(true); 
     container.appendChild (clone); 
    } 
</script> 
</body> 
</html> 
+0

Was meinst du mit "Somevar"? –

+0

ist im Grunde nur eine Variable, die den Wert des übergeordneten div hält. Bitte, lassen Sie den Namen weg – Mike

+0

Sie müssen genauer sein. Bitte zeigen Sie das Endergebnis des 'somevar' Objekts, nachdem ein neues Div geschlossen wurde. Bitte gehen Sie nicht davon aus, dass ich weiß, was Sie wollen. Übrigens ist diese Syntax ungültig. Es muss ein Schlüssel sein: Wert oder du musst es zu einem Array machen. –

Antwort

1

counter=0 Set und dann erhöht nach jedem Aufruf cloning mit counter++ und verwenden clone.id und setzen sie ihn auf 'div_' + counter

+0

Dies löst nicht die Frage des OP, den Inhalt des Script-Tags, das tief geklont wurde, zu ändern. – Phrogz

4

die sie interessieren ..

`

function cloning() { 
    var container = document.getElementById('mydiv'); 
    var clone = document.getElementById('div_0').cloneNode(true); 
    clone.setAttribute('id','div_'+document.getElementById('mydiv').getElementsByTagName('div').length); 
    container.appendChild (clone); 
} 

`

+0

Das macht den Job für die div-ID, wie könnte ich nun die Variable innerhalb des '