Foros del Web » Programando para Internet » Javascript »

Nodo al inicio - DOM

Estas en el tema de Nodo al inicio - DOM en el foro de Javascript en Foros del Web. Según mi documentación me encuentro con la definición de una función para agregar nodos consecuente al último de la lista. Para mi implementación necesitaba visualizar ...
  #1 (permalink)  
Antiguo 05/06/2011, 21:09
Avatar de JairLizcano  
Fecha de Ingreso: junio-2008
Ubicación: Santander, Colombia
Mensajes: 608
Antigüedad: 16 años, 5 meses
Puntos: 53
Pregunta Nodo al inicio - DOM

Según mi documentación me encuentro con la definición de una función para agregar nodos consecuente al último de la lista.

Para mi implementación necesitaba visualizar los nodos anexados al inicio de la lista mas no a lo último, creé un nodo que servía de referencia para el siguiente nodo que se anexaría, simulando así como si le agregase al inicio de la lista.

Ahora es una solución algo "fría", a lo cual pregunto si existe alguna función ya implementada en DOM que me permita ubicar mi nodo al inicio de la lista.

Agradezco su pronta respuesta o documentación sobre el caso.

Reconozco que hacer ello significa un cambio bárbaro en el árbol de nodos, pero no sé qué tan alejado sea.
  #2 (permalink)  
Antiguo 05/06/2011, 22:05
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años, 5 meses
Puntos: 1517
Respuesta: Nodo al inicio - DOM

¿Algo así?
Código PHP:
<html>
<
head>
<
script type="text/javascript">
function 
addNode(id){
    var 
obj document.getElementById(id);
    var 
obj.getElementsByTagName('p');
    var 
addP document.createElement('p');
    
addP.innerHTML 'Foo' + (parseInt(p.length) + 1);
    
obj.insertBefore(addPp.item(0));
}
</script>
</head>
<body>
<input type="button" value="Añadir nodo" onclick="addNode('nodes');" /> 
<div id="nodes">
    <p>Foo1</p>
</div>
</body>
</html> 
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 05/06/2011, 22:31
Avatar de JairLizcano  
Fecha de Ingreso: junio-2008
Ubicación: Santander, Colombia
Mensajes: 608
Antigüedad: 16 años, 5 meses
Puntos: 53
Respuesta: Nodo al inicio - DOM

Muchas gracias hermanazo, puedo adaptarlo a mi necesidad.

Pd: en la documentación estaba la función insertBefore(), y tenía un concepto algo abstracto de lo que era.
  #4 (permalink)  
Antiguo 06/06/2011, 00:43
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 7 meses
Puntos: 1284
Respuesta: Nodo al inicio - DOM

Hola:

Si quieres que sea realmente el primero, y sin fallos:

Código:
if (obj.haschildNodes())
 obj.insertBefore(addP, obj.firstChild);
else
 obj.appendChild(addP);
Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #5 (permalink)  
Antiguo 06/06/2011, 01:08
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, 7 meses
Puntos: 1485
Respuesta: Nodo al inicio - DOM

buenas, que tal!

@caricatos, segun la documentacion oficial, si el segundo parametro es null, dicho elemento es agregado al final del elemento que se intenta agregar. o sea, el metodo actua como appendChild. de modo que si un elemento no tiene nodo, al leer la propiedad firstChild o lastChild, este devuelve como valor null. en conclusion, no deberia generar fallos si el elemento no dispone de nodos. personalmente a mi nunca me ha fallado. a menos que sea inconsistencia de algun navegador.

__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.

Última edición por zerokilled; 06/06/2011 a las 01:18

Etiquetas: dom, inicio, nodo
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 12:10.