elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web (Moderador: #!drvy)
| | |-+  [Pregunta]: ¿Cómo evito esto al usar .prepend() en jQuery?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [Pregunta]: ¿Cómo evito esto al usar .prepend() en jQuery?  (Leído 2,811 veces)
Leguim


Desconectado Desconectado

Mensajes: 719



Ver Perfil
[Pregunta]: ¿Cómo evito esto al usar .prepend() en jQuery?
« en: 20 Agosto 2021, 22:17 pm »

Cuando uso .prepend(); para agregar un fragmento de HTML lo que pasa es que me modifica las posiciones del elemento.

Es decir:

HTML
Código
  1. <div id="elementos"></div>
  2.  

javascript/JQUERY
Código
  1. $('#elementos').prepend('<div class="elemento">ELEMENTO 1</div>'); // esperaría que esto tuviera la posición 0
  2.  
  3. $('#elementos').prepend('<div class="elemento">ELEMENTO 2</div>'); // esperaría que esto tuviera la posición 1
  4.  
  5. $('#elementos').prepend('<div class="elemento">ELEMENTO 3</div>'); // esperaría que esto tuviera la posición 2
  6.  

Pero si accedo a los elementos ocurre que va desde el 0 hasta el 2 y no desde el 2 hasta el 0, entonces no hay manera de evitar que vaya agregando estas posiciones de menor a mayor y sí de mayor a menor?

Código
  1. document.querySelectorAll('.elemento')[0].style.opacity = 0.5; // esperaría que modifique al ELEMENTO 1 pero modificará al ELEMENTO 3
  2.  


En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: [Pregunta]: ¿Cómo evito esto al usar .prepend() en jQuery?
« Respuesta #1 en: 20 Agosto 2021, 22:35 pm »

estás usando la función equivocada, prepend es "pre append" es decir insertar antes, esto lo que hace es que cada ver que insertas algo, lo inserta en la cabeza en lugar de la cola, ej.:

Código:
lista = []
prepend(1)
prepend(2)
prepend(3)

lista -> [3,2,1]

tu buscas es la función append que es simplemente "insertar" y por defecto inserta al final, ej.:

Código:
lista = []
apend(1)
apend(2)
apend(3)

lista -> [1,2,3]


 ;D me parece curioso que te hayas en programación dado primero con prepend que append, más bien usualmente la duda es "como uso append para agregar al inicio?"


En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
MinusFour
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.529


I'm fourth.


Ver Perfil WWW
Re: [Pregunta]: ¿Cómo evito esto al usar .prepend() en jQuery?
« Respuesta #2 en: 20 Agosto 2021, 22:37 pm »

Lo más sencillo sería que solo cambiarás el orden de las instrucciones pero puedes agregar todos los elementos en una sola instrucción:

Código
  1. $('#elementos').prepend([
  2.    '<div class="elemento">ELEMENTO 1</div>',
  3.    '<div class="elemento">ELEMENTO 2</div>',
  4.    '<div class="elemento">ELEMENTO 3</div>'
  5. ]);

Si #elementos está vacio también puedes usar .append.
En línea

Leguim


Desconectado Desconectado

Mensajes: 719



Ver Perfil
Re: [Pregunta]: ¿Cómo evito esto al usar .prepend() en jQuery?
« Respuesta #3 en: 20 Agosto 2021, 22:39 pm »

Ya lo solucioné!

xD (( necesitaba usar prepend y no append por un tema de como se ve visualmente, quiero que inicie arriba pero no quería que me "rompiera" las posiciones que estaba usando.

Lo conseguí con esta formula por si las dudas a alguien le sirva:

Código
  1. let Q = document.querySelectorAll('.elemento').length;
  2. let X = 1; // posición que se quiere usar
  3. X = Q - X - 1;
  4.  

Gracias!
En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: [Pregunta]: ¿Cómo evito esto al usar .prepend() en jQuery?
« Respuesta #4 en: 20 Agosto 2021, 22:46 pm »

claro tu problema es que querías que organize visualmente de una manera y en JS inversa, tambien pudiste invertirlo con una regla de css ya que el es quien se encarga de lo visual

ejemplo
Código:
    display: flex;

    /* según el caso  */
    /* 1: */
    flex-direction: row-reverse;

    /* 2: */
    flex-direction: column-reverse;
« Última modificación: 20 Agosto 2021, 22:49 pm por engel lex » En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
Leguim


Desconectado Desconectado

Mensajes: 719



Ver Perfil
Re: [Pregunta]: ¿Cómo evito esto al usar .prepend() en jQuery?
« Respuesta #5 en: 21 Agosto 2021, 01:12 am »

claro tu problema es que querías que organize visualmente de una manera y en JS inversa, tambien pudiste invertirlo con una regla de css ya que el es quien se encarga de lo visual

ejemplo
Código:
    display: flex;

    /* según el caso  */
    /* 1: */
    flex-direction: row-reverse;

    /* 2: */
    flex-direction: column-reverse;

También esa es buena!
No la conocía.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Como evito SQL Inyection? « 1 2 »
PHP
Skeletron 11 4,521 Último mensaje 8 Diciembre 2009, 22:25 pm
por Skeletron
Uso de los HOIC/LOIC -Cómo evito que se me encuentre-
Redes
PseudoTrue 0 2,208 Último mensaje 5 Julio 2012, 04:29 am
por PseudoTrue
[Ayuda] Usar 2 Jquery al mismo tiempo - Usar 2 veces jquery
Desarrollo Web
Graphixx 5 7,846 Último mensaje 19 Diciembre 2012, 17:17 pm
por #!drvy
[Resuelto][javascript]¿Como hacer esto sin usar jquery?
Desarrollo Web
LaThortilla (Effort) 4 3,234 Último mensaje 23 Abril 2015, 03:51 am
por LaThortilla (Effort)
[Pregunta]: ¿Se puede usar JQuery?
Desarrollo Web
Leguim 3 1,613 Último mensaje 8 Enero 2019, 18:51 pm
por febef
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines