Foros aprenderaprogramar.com

Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: jbodenser en 25 de Noviembre 2015, 22:13

Título: JavaScript childNodes no funciona CU01126E Ejercicio nodos del DOM
Publicado por: jbodenser en 25 de Noviembre 2015, 22:13
Buenas tardes,

Estaba tratando de descubrir por qué uno de los codigos no se ejecuta.

Y me he encontrado con que al poner este código, JS deja de funcionar.

Código: [Seleccionar]
msg = msg + 'Nodo hijo de etiqueta body es texto <<Texto en body>> con nodeName: ' + document.childNodes[1].childNodes[2].childNodes[0].nodeName +'\n\n';
Según parece con (document.childNodes[1]) llegamos a la etiqueta HTML, luego le sigue (.childNodes[2])...
en el índice 0 estaría HEAD, en el 1, BODY y en el 2?? eso existe o es un código erróneo?

Sé que no vamos a acceder a los nodos de este modo pero no esta mal saberlo no? es que también soy muy curioso.

Gracias por la paciencia.

Saludos
Título: Re:JavaScript childNodes no funciona CU01126E Ejercicio nodos del DOM
Publicado por: Ogramar en 27 de Noviembre 2015, 08:11
Buenas, en el propio texto del curso tienes la respuesta:

Citar
¿Por qué usamos distinto código para distintos navegadores si estamos trabajando con un mismo código HTML?

El motivo es que cada navegador trabaja, de forma interna, de distinta manera. En este caso, al navegador 2 usar distinto número de nodos que el navegador 1, los índices de acceso a nodos no son los mismos para distintos navegadores. En consecuencia, si tratamos de ejecutar el código para el navegador 2 en el navegador 1 posiblemente lo que ocurra es que “no se muestra nada”, debido a que al haber errores en los índices de acceso JavaScript detecta el error y simplemente no se ejecuta (sin mostrar ningún aviso).

¿Significa esto que tendremos que crear distinto código JavaScript para los distintos navegadores?

No, existen métodos más estándares y sencillos para acceder a nodos que veremos más adelante

Salu2