Ver Mensaje Individual
  #1 (permalink)  
Antiguo 09/07/2016, 21:01
Avatar de BramSt
BramSt
 
Fecha de Ingreso: abril-2015
Mensajes: 117
Antigüedad: 9 años
Puntos: 5
No entiendo bien el DOM

Hola, estoy empezando con Javascript y el DOM, y se me está haciendo bastante lioso.

Veréis, he creado un pequeño código HTML para ir probando:

Código HTML:
Ver original
  1.     <head>
  2.    
  3.        
  4.     </head>
  5.    
  6.     <body>
  7.    
  8.    
  9.         <p>Hola qué tal</p>
  10.         <div id="wrapper"><p>Bien</p></div>
  11.  
  12.  
  13.         <script type="text/javascript">//pequeño js para ir probando
  14.         var msg='';
  15.        
  16.         msg=document.childNodes[0].childNodes[2].childElementCount; <!--esto (el body) devuelve tres elementos.
  17. ¿No deberían ser 2? El párrafo y el div... -->
  18.        
  19.        
  20.         alert(msg);
  21.        
  22.         </script>
  23.     </body>
  24.    
  25.  
  26.    
  27. </html>

En el comentario está una de mis dudas. Pensaría que quizá el tercer elemento es <script>, pero si lo saco del body (es decir, poniendo el código js después del body), me sigue contando tres elementos... Lo cuál me lleva a la siguiente duda:

He tratado de implementar ese código js en un .js aparte, para ver si así no me lo cuenta, de tal forma:


Código Javascript:
Ver original
  1. var msg='';
  2.        
  3.         msg=document.childNodes[0].childNodes[2].childElementCount; /*esto (el body) devuelve tres elementos. ¿No deberían ser 2? El párrafo y el Id... */
  4.        
  5.        
  6.         alert(msg);


Es decir, que ya he probado quitando lo del script y enlazándolo desde el head... pero el .js no se me ejecuta, y mirando línea a línea, parece que es esta la que me da problemas:

Código Javascript:
Ver original
  1. msg=document.childNodes[0].childNodes[2].childElementCount;

Vaya que por algún motivo, desde un .js externo no se ejecuta...

Un saludo a todos y gracias.