Foros del Web » Programando para Internet » Javascript »

Una Pequeña catedra de DOM en JS

Estas en el tema de Una Pequeña catedra de DOM en JS en el foro de Javascript en Foros del Web. Bueno, me encuentro leyendo la "Introduccion a Javascript" de Librosweb.es y esta muy bueno el libro para aprender, aunque me esta costando algo de trabajo ...
  #1 (permalink)  
Antiguo 27/09/2011, 00:27
 
Fecha de Ingreso: junio-2009
Mensajes: 75
Antigüedad: 14 años, 10 meses
Puntos: 0
Una Pequeña catedra de DOM en JS

Bueno, me encuentro leyendo la "Introduccion a Javascript" de Librosweb.es y esta muy bueno el libro para aprender, aunque me esta costando algo de trabajo porque soy malo pensando ( ordenadamente la menos ).

Pues me encuentro en el capitulo de la creacion, modificacion y eliminacion de los elementos DOM de una pagina, y como ejercicio aparte, estoy tratando de hacer algo parecido a lo que metroflog hace con sus comentarios, ir agregandolos a la pagina sin recargarla, sin embargo parece ser que algo me esta saliendo mal, pues en vez de el comentario que deseo que aparezca, me sale solamente "undefined", entonces acudo a ustedes para ver si podrian instruirme un poco acerca de porque lo que estoy usando no funciona y que deveria usar y porque (si no es mucha molestia claro )

El codigo que utilizo es el siguiente:

Código Javascript:
Ver original
  1. function agrega(){
  2.  
  3. //Agregar un elemento a la Pagina Web
  4.  
  5. // Crear nodo de tipo Element
  6. var parrafo = document.createElement("p");
  7.  
  8. // Crear nodo de tipo Text
  9. var texto = document.createElement("textarea");
  10.  
  11. //Se almacena el contenido del textarea
  12. var contenido = document.getElementById('comment').value;
  13.  
  14. // Añadir el nodo Text como hijo del nodo Element
  15. document.body.appendChild(parrafo);
  16.  
  17. parrafo.innerHTML = contenido.value;
  18.  
  19. }

Y lo activo de la siguiente manera:

Código HTML:
Ver original
  1. <input type="button" value="Agregar un Parrafo" Onclick="javascript:agrega()"/>

Quizas deveria usar appendchild pero porque no innerHTML?, porque el undefined?, porque el usar value no funciona?
  #2 (permalink)  
Antiguo 27/09/2011, 00:38
Avatar de Maganius  
Fecha de Ingreso: septiembre-2010
Mensajes: 310
Antigüedad: 13 años, 7 meses
Puntos: 10
Respuesta: Una Pequeña catedra de DOM en JS

Te pongo en color ROJO tu ERROR

function agrega(){

//Agregar un elemento a la Pagina Web

// Crear nodo de tipo Element
var parrafo = document.createElement("p");

// Crear nodo de tipo Text
var texto = document.createElement("textarea");

//Se almacena el contenido del textarea
var contenido = document.getElementById('comment').value;

// Añadir el nodo Text como hijo del nodo Element
document.body.appendChild(parrafo);

parrafo.innerHTML = contenido.value;


Estas accediendo a contenido.value y tu ya tienes defenido el value en contenido. el script quedaria asi:

Código Javascript:
Ver original
  1. function agrega(){
  2.      
  3.     //Agregar un elemento a la Pagina Web
  4.      
  5.     // Crear nodo de tipo Element
  6.     var parrafo = document.createElement("p");
  7.      
  8.     // Crear nodo de tipo Text
  9.     var texto = document.createElement("textarea");
  10.      
  11.     //Se almacena el contenido del textarea
  12.     var contenido = document.getElementById('comment').value;
  13.      
  14.     // Añadir el nodo Text como hijo del nodo Element
  15.     document.body.appendChild(parrafo);
  16.      
  17.     parrafo.innerHTML = [COLOR="Red"]contenido[/COLOR];
  18.      
  19.     }
  #3 (permalink)  
Antiguo 01/10/2011, 21:16
 
Fecha de Ingreso: junio-2009
Mensajes: 75
Antigüedad: 14 años, 10 meses
Puntos: 0
Respuesta: Una Pequeña catedra de DOM en JS

OH ya veo, y creo que lo entiendo, no es necesario acceder a la propiedad value de contenido ya que este ya contiene el valor value deL textarea comment, entonces es por eso que me manda un undefined?, porque en el value del contenido no tenia nada?

Un saludo y gracias por su tiempo
  #4 (permalink)  
Antiguo 01/10/2011, 21:21
Avatar de Maganius  
Fecha de Ingreso: septiembre-2010
Mensajes: 310
Antigüedad: 13 años, 7 meses
Puntos: 10
Respuesta: Una Pequeña catedra de DOM en JS

No, te manda undefined porque no podes acceder al value de un elemento 2 veces.

En tu script lo que tu estas haciendo es como si estubieras escribiendo esto:

document.getElementById('comment').value.value;

Así es como lo estas escribiendo en tu script.

por eso necesitas borrar el .value de tu segunda variable "contenido.value" quedaria "contenido" para que funcionase correctamente

Etiquetas: dom, funcion, html, js, pequeña
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 08:04.