Foros del Web » Programando para Internet » Javascript »

Seleccionar id especifico en un DOM

Estas en el tema de Seleccionar id especifico en un DOM en el foro de Javascript en Foros del Web. Hola tengo un div contMensajes que contiene divs mensajes que saco de una base de datos. como le pongo un identificador al ultimo de los ...
  #1 (permalink)  
Antiguo 14/06/2015, 14:53
Avatar de mostaza4  
Fecha de Ingreso: octubre-2008
Mensajes: 74
Antigüedad: 15 años, 6 meses
Puntos: 0
Seleccionar id especifico en un DOM

Hola tengo un div contMensajes que contiene divs mensajes que saco de una base de datos. como le pongo un identificador al ultimo de los mensajes para que me quede seleccionado, ya que tengo un overflor=auto que me genera un scroll pero me aparece arriba y quiero que este abajo. Gracias
  #2 (permalink)  
Antiguo 14/06/2015, 17:37
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: Seleccionar id especifico en un DOM

Hola:

Supongo que intentas decir algo, pero no se entiende... (yo no lo entiendo)

Los divs no se seleccionan... eso es para las opciones de los controles select.

Tal vez sea un problema del lenguaje de servidor que uses, para ir a un id específico debes usar enlaces internos...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #3 (permalink)  
Antiguo 14/06/2015, 23:17
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Seleccionar id especifico en un DOM

No es necesario que asignes identificadores a los <div> internos para ubicar al último, existen otras formas de hacerlo. Una de ellas es usando pseudoselectores CSS, como :last-child:

Código Javascript:
Ver original
  1. var divPrincipal = document.querySelector("#id del div principal"),
  2.     ultimoDiv = divPrincipal.querySelector("div:last-child");

Y ya teniéndolo, solo te queda posicionar la barra de desplazamiento vertical del <div> principal hasta donde se encuentre el último <div> que contenga, para lo cual deberás de usar las propiedades scrollTop y offsetTop.

Código Javascript:
Ver original
  1. divPrincipal.scrollTop = ultimoDiv.offsetTop;

DEMO

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #4 (permalink)  
Antiguo 15/06/2015, 12:20
Avatar de mostaza4  
Fecha de Ingreso: octubre-2008
Mensajes: 74
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Seleccionar id especifico en un DOM

Cita:
Iniciado por caricatos Ver Mensaje
Hola:

Supongo que intentas decir algo, pero no se entiende... (yo no lo entiendo)

Los divs no se seleccionan... eso es para las opciones de los controles select.

Tal vez sea un problema del lenguaje de servidor que uses, para ir a un id específico debes usar enlaces internos...

Saludos
Claro se me complico dar a entender. Gracias igual

Cita:
Iniciado por Alexis88 Ver Mensaje
No es necesario que asignes identificadores a los <div> internos para ubicar al último, existen otras formas de hacerlo. Una de ellas es usando pseudoselectores CSS, como :last-child:

Código Javascript:
Ver original
  1. var divPrincipal = document.querySelector("#id del div principal"),
  2.     ultimoDiv = divPrincipal.querySelector("div:last-child");

Y ya teniéndolo, solo te queda posicionar la barra de desplazamiento vertical del <div> principal hasta donde se encuentre el último <div> que contenga, para lo cual deberás de usar las propiedades scrollTop y offsetTop.

Código Javascript:
Ver original
  1. divPrincipal.scrollTop = ultimoDiv.offsetTop;

DEMO

Saludos
Es justo lo que buscaba, pero pruebo y no me funciona. mira este es el codigo que le puse al html
Código HTML:
 <script type="text/javascript">
			var divPrincipal = document.querySelector("#cuadroMensaje"),
		    ultimoDiv = divPrincipal.querySelector("div:last-child");
		    divPrincipal.scrollTop = ultimoDiv.offsetTop;
 	
		</script> 
y este es el codigo de los divs para explicar porque tienne un par de divs adentro y por eso quiero saber si es eso que no lo deja seleccionarmelo como esta en el DEMO que pusiste que es justamente lo que quiero

Código HTML:
<li><div id='cuadroMensaje'>
									{foreach name=cadaMensaje from=$mensajes item=array}
									<div class='cadaMensaje'>
										<img src="fotos/fotos2/chicas/{$array.foto}">
										<div class='textoMensaje'>
											<p><b>{$array.remitente}</b></p>
											<h6>{$array.mensaje}</h6>
										</div>	
									</div>
									{/foreach}

								</div></li> 
como podras notar estoy usando smarty y lo que quiero es que me seleccione el ultimo div class=cadaMensaje pero este a su vez tiene un div class+textomensaje

Te agradezco al ayuda, he buscado esto por todos lados y no encontraba nada
  #5 (permalink)  
Antiguo 15/06/2015, 12:30
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Seleccionar id especifico en un DOM

Coloca el código JavaScript justo antes de la etiqueta </body> o envuélvelo entre esto:

Código Javascript:
Ver original
  1. document.addEventListener("DOMContentLoaded", function(){
  2.     //El código
  3. }, false);

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #6 (permalink)  
Antiguo 15/06/2015, 12:42
Avatar de mostaza4  
Fecha de Ingreso: octubre-2008
Mensajes: 74
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Seleccionar id especifico en un DOM

Cita:
Iniciado por Alexis88 Ver Mensaje
Coloca el código JavaScript justo antes de la etiqueta </body> o envuélvelo entre esto:

Código Javascript:
Ver original
  1. document.addEventListener("DOMContentLoaded", function(){
  2.     //El código
  3. }, false);

Saludos
Gracias ahora funciona hasta 9 divs, si salen mas ya no llega al final, queda al medio, alguna idea porque pasa esto? como seguro ya lo deduciras estoy armando un sistema de mensajes y necesito que el ultimo siempre quede visible. Gracias
  #7 (permalink)  
Antiguo 15/06/2015, 12:55
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Seleccionar id especifico en un DOM

Quizá la barra de desplazamiento ya no tenga más espacio para bajar, de modo que se queda lo más abajo que puede.
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #8 (permalink)  
Antiguo 15/06/2015, 12:59
Avatar de mostaza4  
Fecha de Ingreso: octubre-2008
Mensajes: 74
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Seleccionar id especifico en un DOM

Cita:
Iniciado por Alexis88 Ver Mensaje
Quizá la barra de desplazamiento ya no tenga más espacio para bajar, de modo que se queda lo más abajo que puede.
nono, me queda a la mitad, despues puedo bajar la barra y llegar al final.
Es mas, con el 9 registro que ponga ya ese me queda mitad visto y mitad oculto, tengo que bajarlo manuealmente y si sigo sumando va quedando cada vez mas arriba. Si pongo 20 registros me queda antes de la mitad. es como que se frena en el numero 8
  #9 (permalink)  
Antiguo 15/06/2015, 13:02
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Seleccionar id especifico en un DOM

¿Podrías mostrarnos un ejemplo en vivo?

Puedes usar JSfiddle o JSbin.
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand

Etiquetas: html
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:55.