2017-09-29 8 views
0

Im clonant un div plusieurs fois et j'ai aussi besoin de changer ses divs enfants internes. (par exemple, id_j1, id_j2, etc.)Enfants de clone div utilisant javascript

Je réussis à cloner la div entière et à changer son identifiant mais pas les identifiants des enfants.

javascript

document.getElementById('btn_new_service').onclick = duplicate; 
var i =0; 
function duplicate() { 
    var original = document.getElementById('duplicator'); 
    var clone = original.cloneNode(true); // "deep" clone 
    clone.id = "duplicator" + ++i; // there can only be one element with an ID} 
original.parentNode.appendChild(clone); 

si j'ajouter le code ci-dessous dans le code ci-dessus puis-je obtenir une erreur de Uncaught TypeError: clone.children is not a function.

var new_div_ID = 'duplicator-' + i; 
var new_service_ID = 'c_service-'+i; 
var new_vat_ID = 'vat-'+i; 
var new_amount_ID = 'amount-'+i; 
var new_vatamount_ID = 'vat_amount-'+i; 
clone.children('#c_service').attr('id',new_service_ID); 
clone.children('#vat').attr('id',new_vat_ID); 
clone.children('#amount').attr('id',new_amount_ID); 
clone.children('#vat_amount').attr('id',new_vatamount_ID); 

j'ai pris tous les deux de 2 différents extraits de code qu'ils travaillaient bien mais quand je les combine seulement ils ne le font pas. Des conseils pourquoi cela arrive-t-il?

+2

il ressemble à un 'pot Meltin jQuery/DOMApi' ... – Hitmands

+1

' $ (clone) .children ('comme l'élément DOM natif n'a pas la fonction – Satpal

+0

@Satpal j'ai besoin de changer l'id des enfants ainsi – noel293

Répondre

2

if i append the code below in the above code then i get an error of Uncaught TypeError: clone.children is not a function.

children est pas un function dans Vanila js, utilisez querySelector au lieu et à la place setAttribute

Make it

clone.querySelector('#c_service').setAttribute('id',new_service_ID); 
+0

merci l'homme! qui fonctionne comme un charme, de sorte que l'autre wasn ne fonctionne pas parce que ce n'est pas une fonction intégrée droite? J'ai pensé à cela mais parce que l'exemple original déclarait un clone variable et le rendait égal à la div principale et après qu'il utilisait 'children' pour changer les ids des enfants – noel293

+0

@ noel293' children' n'est pas une méthode membre de 'Node objet comme je l'ai mentionné dans la réponse. C'est pourquoi vous obtenez cette erreur. – gurvinder372