Digamos que tengo tres <div>
elementos en una página. ¿Cómo puedo intercambiar posiciones del primero y del tercero <div>
? jQuery está bien.
javascript
jquery
dom
núcleo
fuente
fuente
var html = $('#container').html(); ...; $('#container').html(html);
No es necesario utilizar una biblioteca para una tarea tan trivial:
Esto tiene en cuenta el hecho de que
getElementsByTagName
devuelve una NodeList en vivo que se actualiza automáticamente para reflejar el orden de los elementos en el DOM a medida que se manipulan.También puedes usar:
y hay varias otras permutaciones posibles, si tiene ganas de experimentar:
por ejemplo :-)
fuente
.antes y después de
¡Utilice JS vanilla moderno! Mucho mejor / más limpio que antes. No es necesario hacer referencia a un padre.
Compatibilidad con navegadores : 94,23% global a julio de 2020
fuente
y utilícelo así:
si no desea utilizar jQuery, podría adaptar fácilmente la función.
fuente
Esta función puede parecer extraña, pero depende en gran medida de los estándares para funcionar correctamente. De hecho, puede parecer que funciona mejor que la versión de jQuery que publicó tvanfosson, que parece hacer el intercambio solo dos veces.
¿En qué peculiaridades de los estándares se basa?
fuente
El enfoque de Jquery mencionado en la parte superior funcionará. También puede usar JQuery y CSS. Diga, por ejemplo, que en Div one ha aplicado class1 y div2 ha aplicado clase class2 (por ejemplo, cada clase de CSS proporciona una posición específica en el navegador), ahora puede intercambiar las clases, use jquery o javascript (que cambiará la posición)
fuente
Perdón por tropezar con este hilo. Tropecé con el problema de "intercambiar elementos DOM" y jugué un poco.
El resultado es una "solución" nativa de jQuery que parece ser realmente bonita (desafortunadamente no sé qué está sucediendo en las partes internas de jQuery al hacer esto)
El código:
La documentación de jQuery dice que
insertAfter()
mueve el elemento y no lo clonafuente