Digamos que eu tenha três <div>
elementos em uma página. Como posso trocar as posições da primeira e da terceira <div>
? jQuery está bem.
javascript
jquery
dom
testemunho
fonte
fonte
var html = $('#container').html(); ...; $('#container').html(html);
Não há necessidade de usar uma biblioteca para uma tarefa tão trivial:
Isso leva em consideração o fato de que
getElementsByTagName
retorna um NodeList ativo que é atualizado automaticamente para refletir a ordem dos elementos no DOM à medida que são manipulados.Você também pode usar:
e existem várias outras permutações possíveis, se você quiser experimentar:
por exemplo :-)
fonte
.antes e depois
Use o JS vanilla moderno! Muito melhor / mais limpo do que antes. Não há necessidade de consultar um pai.
Suporte do navegador - 94,23% global em julho de 20
fonte
e use-o assim:
se você não quiser usar o jQuery, pode facilmente adaptar a função.
fonte
Esta função pode parecer estranha, mas depende muito de padrões para funcionar corretamente. Na verdade, pode parecer funcionar melhor do que a versão jQuery que tvanfosson postou, que parece fazer a troca apenas duas vezes.
Em que peculiaridades dos padrões ele se baseia?
fonte
A abordagem Jquery mencionada na parte superior funcionará. Você também pode usar JQuery e CSS. Diga, por exemplo, em Div one você aplicou class1 e div2, você aplicou classe class2 (digamos, por exemplo, cada classe de css fornece uma posição específica no navegador), agora você pode trocar as classes, use jquery ou javascript (isso mudará a posição)
fonte
Desculpe por interromper este tópico, tropecei no problema "trocar elementos DOM" e brinquei um pouco
O resultado é uma "solução" nativa do jQuery que parece ser muito bonita (infelizmente, não sei o que está acontecendo nos componentes internos do jQuery ao fazer isso)
O código:
A documentação do jQuery diz que
insertAfter()
move o elemento e não o clonafonte