J'ai besoin de changer un parent div par programmation. Par exemple
<body>
<div id="div_a">
<div id="child"></div>
</div>
<div id="div_b">
</div>
</body>
Je me demande s'il est possible de changer le div avec id = "child" parent en div avec id = "div_b"?
J'ai une recherche , mais nulle part proche. Mais au cas où il y aurait une question similaire, merci de me le faire savoir.
Merci
soyez plus précis, si vous voulez transformer et le déplacer en dehors de
0
0 commentaires
-1
0 commentaires
0
0 commentaires
0
2 commentaires
4 Réponses :
votes
Vous devez ajouter l'élément au nouveau parent, puis le supprimer de l'ancien. Si vous pouvez utiliser JQuery, vous pouvez le faire facilement avec
var tmp = document.getElementById('child'); document.getElementById('div_b').appendChild(tmp.cloneNode(true)); tmp.remove();avec JavaScript
jQuery("#child").detach().appendTo('#div_b')votes
En fonction de votre application, vous pouvez utiliser querySelector ou querySelectorAll pour obtenir le div avec id = "child". Ensuite, en utilisant [insert element var] .classlist (), vous pouvez .remove ('child') puis .add ('div_b').
votes
En JS pur, vous pouvez utiliser
document .querySelector(oudocument.getElementById) etNode.appendChildpour ajouter le div#childau div#div_b. Puisqu'un nœud ne peut pas exister à plusieurs endroits, cela le supprime également automatiquement des données#div_a:<body> <div id="div_a"> Div A! <div id="child">I am a child of Div A</div> </div> <hr/> <div id="div_b"> Div B! </div> </body>document.querySelector('#div_b').appendChild(document.querySelector('#child')); // or document.getElementById('div_b').appendChild(document.getElementById('child'));votes
Vous pouvez simplement utiliser
appendChildet passer le nœud comme paramètre. Un nœud ne peut pas être à deux endroits à la fois, il le déplacera donc vers l'emplacement approprié.<div id="div_a"> <div id="child"></div> </div> <div id="div_b"> </div>let child = document.querySelector("#child"); let parent = document.querySelector("#div_b"); parent.appendChild(child);Premièrement, je suis désolé. Je ne suis pas expert en programmation Web. Mais j'ai trouvé que cette réponse était la plus simple et répondait directement à mes besoins. D'autres réponses pourraient fonctionner et aussi vraies. Malheureusement, je ne peux en choisir qu'un. Quoi qu'il en soit, je me demande pourquoi tant de votes négatifs sur une autre réponse?
@Lyn Je suppose que la réponse qui a été déclassée est probablement parce qu'elle n'a pas vraiment répondu directement à la question et n'a pas montré de code réel.