Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] ¿Cómo cambiar propiedad de una vez a todos los hijos de un contenedor con CHILDNODES?

Estas en el tema de ¿Cómo cambiar propiedad de una vez a todos los hijos de un contenedor con CHILDNODES? en el foro de Javascript en Foros del Web. Buen día. Hoy descubrí el childNodes de javascript. Se me ocurrió hacer lo siguiente con él: leer el total de los hijos de un contenedor, ...
  #1 (permalink)  
Antiguo 03/03/2014, 17:51
Avatar de berkeleyPunk  
Fecha de Ingreso: febrero-2013
Ubicación: México :C
Mensajes: 565
Antigüedad: 11 años, 2 meses
Puntos: 22
Pregunta ¿Cómo cambiar propiedad de una vez a todos los hijos de un contenedor con CHILDNODES?

Buen día.

Hoy descubrí el childNodes de javascript.

Se me ocurrió hacer lo siguiente con él: leer el total de los hijos de un contenedor, y mediante un for aplicar visibility:visible a sus hijos, previamente invisibles con CSS.

En este link pongo el código que llevo... que no sirve, claro está!




Saludos cordiales!

Última edición por berkeleyPunk; 03/03/2014 a las 17:58
  #2 (permalink)  
Antiguo 03/03/2014, 19:08
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: ¿Cómo cambiar propiedad de una vez a todos los hijos de un contenedor con

El detalle con los nodos es que no puedes tratarlos como elementos, es decir, no puedes aplicarles directamente un style o un class como si se trataran de elementos comunes (por decirlo de alguna manera). Esto se explica en la documentación oficial de la W3C.

Para lo que buscas hacer, basta con que tomes a los elementos hijos con cualquiera de los métodos estándar como getElementsByTagName, getElementsByClassName, querySelectorAll, entre otros.

Código Javascript:
Ver original
  1. function c(){
  2.     var div = document.getElementById("divPrincipal"),
  3.         childs = div.getElementsByClassName("divs"),
  4.         total = childs.length;
  5.    
  6.     for (i = 0; i < total; i++)
  7.         childs[i].style.visibility = "visible";
  8. }

DEMO

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 03/03/2014, 20:41
Avatar de berkeleyPunk  
Fecha de Ingreso: febrero-2013
Ubicación: México :C
Mensajes: 565
Antigüedad: 11 años, 2 meses
Puntos: 22
De acuerdo Respuesta: ¿Cómo cambiar propiedad de una vez a todos los hijos de un contenedor con

Maestro Alexis88, buenas noches.

Perfecto, entonces los nodos no pueden ser tratados como elementos. ¿Entonces cuál sería exactamente la diferencia? Lo pregunto porque, por ejemplo, Maestros del Web afirma que "Cada elemento [del DOM] se convierte en un nodo".

Pero bueno, a partir de ahora debo entender que a los nodos
Cita:
no puedes aplicarles directamente un style o un class...
Saludos!
  #4 (permalink)  
Antiguo 03/03/2014, 21:53
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: ¿Cómo cambiar propiedad de una vez a todos los hijos de un contenedor con

Hace un tiempo me hice la misma pregunta y encontré la respuesta en la documentación que ofrece Mozilla.org y aquí. Probablemente despejes tus dudas como lo hice en su momento.

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
  #5 (permalink)  
Antiguo 04/03/2014, 03:09
Colaborador
 
Fecha de Ingreso: septiembre-2013
Ubicación: España
Mensajes: 3.648
Antigüedad: 10 años, 7 meses
Puntos: 578
Respuesta: ¿Cómo cambiar propiedad de una vez a todos los hijos de un contenedor con

El gran problema de esto es que los espacios en blanco también son nodos (#text), y no puedes aplicar esas propiedades a este tipo de nodos. En vez de childNodes puedes utilizar children, que recoge solo los elementos comunes.
  #6 (permalink)  
Antiguo 04/03/2014, 12:57
Avatar de berkeleyPunk  
Fecha de Ingreso: febrero-2013
Ubicación: México :C
Mensajes: 565
Antigüedad: 11 años, 2 meses
Puntos: 22
De acuerdo Respuesta: ¿Cómo cambiar propiedad de una vez a todos los hijos de un contenedor con

Cita:
Iniciado por PHPeros Ver Mensaje
los espacios en blanco también son nodos (#text)... En vez de childNodes puedes utilizar children, que recoge solo los elementos comunes.
Maestro PHPeros, muy bien. Investigué acerca de children() y tienes razón, no cuenta los enter's.



OK, ok. Ahora sí, post solucionado.


..

Última edición por berkeleyPunk; 04/03/2014 a las 16:17

Etiquetas: Ninguno
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 23:17.