Disons que j'ai trois <div>
éléments sur une page. Comment puis-je échanger les positions du premier et du troisième <div>
? jQuery est très bien.
javascript
jquery
dom
coeur
la source
la source
var html = $('#container').html(); ...; $('#container').html(html);
Il n'est pas nécessaire d'utiliser une bibliothèque pour une tâche aussi triviale:
Cela tient compte du fait que
getElementsByTagName
renvoie une liste de nœuds en direct qui est automatiquement mise à jour pour refléter l'ordre des éléments dans le DOM au fur et à mesure de leur manipulation.Vous pouvez également utiliser:
et il existe diverses autres permutations possibles, si vous avez envie d'expérimenter:
par exemple :-)
la source
.avant et après
Utilisez la vanille JS moderne! Bien mieux / plus propre qu'auparavant. Pas besoin de référencer un parent.
Prise en charge des navigateurs - 94,23% dans le monde à partir de juillet 20
la source
et utilisez-le comme ceci:
si vous ne souhaitez pas utiliser jQuery, vous pouvez facilement adapter la fonction.
la source
Cette fonction peut paraître étrange, mais elle s'appuie fortement sur des standards pour fonctionner correctement. En fait, cela peut sembler mieux fonctionner que la version jQuery que tvanfosson a publiée et qui semble ne faire l'échange que deux fois.
Sur quelles particularités des normes s'appuie-t-il?
la source
L'approche Jquery mentionnée en haut fonctionnera. Vous pouvez également utiliser JQuery et CSS. Dites par exemple sur Div one que vous avez appliqué class1 et div2 vous avez appliqué la classe class2 (par exemple, chaque classe de css fournit une position spécifique sur le navigateur), maintenant vous pouvez échanger les classes utiliser jquery ou javascript (cela changera la position)
la source
Désolé d'avoir heurté ce fil, j'ai trébuché sur le problème "swap DOM-elements" et j'ai joué un peu
Le résultat est une "solution" native de jQuery qui semble vraiment jolie (malheureusement, je ne sais pas ce qui se passe au niveau des composants internes de jQuery en faisant cela)
Le code:
La documentation jQuery dit que cela
insertAfter()
déplace l'élément et ne le clone pasla source