Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] crear elementos div

Estas en el tema de crear elementos div en el foro de Javascript en Foros del Web. hola a todos, estoy creando elementos div con java script, el codigo que manejo funciona muy bien, solo queda que al crear otro elemento este ...
  #1 (permalink)  
Antiguo 06/06/2014, 16:04
 
Fecha de Ingreso: enero-2011
Mensajes: 47
Antigüedad: 13 años, 3 meses
Puntos: 0
crear elementos div

hola a todos, estoy creando elementos div con java script, el codigo que manejo funciona muy bien, solo queda que al crear otro elemento este se situé en la primera posición y no debajo del elemento anterior, por favor su ayuda aquí el codigo

var randomnumber=Math.floor(Math.random()*11);

var page=document.getElementById('dv');

var divTag = document.createElement("div");

divTag.id = randomnumber;

divTag.setAttribute("align", "center");

divTag.className = "dynamicDiv";

divTag.innerHTML = response;

page.appendChild(divTag);


<div id="dv"></div>
  #2 (permalink)  
Antiguo 06/06/2014, 16:20
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: crear elementos div

Inserta el elemento antes del primer elemento del contenedor, utilizando el método insertBefore, mientras que para saber cuál es el primer elemento, utiliza la propiedad firstChild.

Código Javascript:
Ver original
  1. var contenedor = document.getElementById("id_contenedor"),
  2.     primerHijo = contenedor.firstChild,
  3.     nuevoHijo = document.createElement("div");
  4.  
  5. contenedor.insertBefore(nuevoHijo, primerHijo);

Un ejemplo:



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
  #3 (permalink)  
Antiguo 06/06/2014, 16:41
 
Fecha de Ingreso: enero-2011
Mensajes: 47
Antigüedad: 13 años, 3 meses
Puntos: 0
Respuesta: crear elementos div

Muchisimas graciass,, funciono perfectamente , muy buen codigo!!!!!
  #4 (permalink)  
Antiguo 06/06/2014, 17:55
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: crear elementos div

Hola:

insertBefore puede tener el inconveniente de que no exista ese primer elemento... insertBefore no: quiero un insertAfter!...

El enlace es hacia un problema parecido... lo que quiero comentar es que genéricamente debería controlarse la existencia de nodos hijos...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #5 (permalink)  
Antiguo 06/06/2014, 18:09
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: crear elementos div

Había pensado en lo que dices, caricatos, pero como probando así no ocurría ningún problema, ni siquiera se emitían mensajes de error en consola, pues decidí dejarlo así, pero para hacerlo más 'formal', solo haría falta una condición:

Código Javascript:
Ver original
  1. if (contenedor.hasChildNodes())
  2.     contenedor.insertBefore(nuevoHijo, contenedor.firstChild);
  3. else
  4.     contenedor.appendChild(nuevoHijo);

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 08/06/2014, 14:21
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: crear elementos div

buenas,
solo una observación. insertBefore se puede comportar como appendChild. de ahí que el código inicial de @alexis88 no reporta error. el estandar DOM Core Level 2 dice que si el elemento de referencia es null, entonces el elemento se agrega al final del padre. recordemos que: null es un objeto especial, y que las propiedades firstChild, lastChild, nextSibling, prevSibling pueden devolver null según sea el caso.

Cita:
Iniciado por http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-952280727
insertBefore
Inserts the node newChild before the existing child node refChild. If refChild is null, insert newChild at the end of the list of children.
en lo personal, no me preocuparía.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #7 (permalink)  
Antiguo 08/06/2014, 14:33
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Respuesta: crear elementos div

@zerokilled: tu sabras en que casos aun es necesario comprobar con hasChildNodes() ?
__________________
Salu2!
  #8 (permalink)  
Antiguo 08/06/2014, 15:14
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: crear elementos div

Pues, cuando quieras realizar alguna instrucción con los elementos contenidos por otro y necesariamente necesites saber si dicho elemento contiene nodos hijos para realizar lo que quieres, por ejemplo:

Código Javascript:
Ver original
  1. var contenedor = document.getElementById("miContenedor");
  2.  
  3. if (contenedor.hasChildNodes()){
  4.     var hijos = contenedor.childNodes;
  5.     for (i = 0, l = hijos.length; i < l; hijos[i].innerHTML = i + 1, i++);
  6. }

Pero como ya lo explicó perfectamente nuestro amigo zerokilled, para el problema de nuestro amigo felipeagudelo188 no es necesario.

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
  #9 (permalink)  
Antiguo 08/06/2014, 15:20
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Respuesta: crear elementos div

@Alexis88 : es que.... en general tampoco deberia arrojar error porque el for() va de 0 a length o sea.. que sino tiene elementos se hace 0 veces la iteracion....y por tanto nunca llega a las sentencias interiores al bucle sin elementos

Digo... siempre creo es posible hacer pasar por el chequeo del bucle...y pues como el caso particular de insertBefore() y esta cubierto......
__________________
Salu2!
  #10 (permalink)  
Antiguo 08/06/2014, 15:42
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: crear elementos div

Cita:
Iniciado por Italico76 Ver Mensaje
@zerokilled: tu sabras en que casos aun es necesario comprobar con hasChildNodes() ?
de momento no tengo un ejemplo concreto, pero generalmente se requiere cuando quieres hacer una exploración (traversing) por los elementos, más o menos como el ejemplo de @alexis88. aunque de todas formas, para javascript se podría considerar un tanto redundante porque firstChild o lastChild podrían funcionar como boolean para determinar si existen nodos. en javascript funciona debido a la naturaleza del lenguaje, no es fuertemente tipado. por otro lado, recordemos que el DOM es un API y éste puede ser implementado en otros entornos fuera del navegador. otros lenguajes, son fuertemente tipado y en ese caso es más conveniente usar el método hasChildNodes en lugar de hacer un casting al tipo de dato correcto. pero en general, en javascript también podrias usarlo como condicional (el ejemplo de @alexis88) antes de entrar al cuerpo de un código extenso, indistintamente exista o no un bucle en el cuerpo.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.

Etiquetas: elementos, funcion, 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 14:27.