Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] getElementsByClassName

Estas en el tema de getElementsByClassName en el foro de Javascript en Foros del Web. Hola a todos, para usar correctamente el menú tipo acordeón que tengo de dos niveles, hago lo siguiente: -Al picar en el menú de nivel ...
  #1 (permalink)  
Antiguo 24/06/2013, 13:29
 
Fecha de Ingreso: marzo-2013
Mensajes: 83
Antigüedad: 11 años, 1 mes
Puntos: 0
getElementsByClassName

Hola a todos,

para usar correctamente el menú tipo acordeón que tengo de dos niveles, hago lo siguiente:

-Al picar en el menú de nivel 1 me carga un archivo.php (contine los div que deseo mostrar con el menú de nivel 2 pero me aparecen ocultos)

-Al picar en un menú de nivel 2:
* Oculta los div de clase 'submenus'
* Muestra el div con id '(XXXX)' (único porque el menú se creó dinamicamente)

No tengo problemas con mostrar el div porque utilizo getElementById pero no consigo funcionar el ocultar porque el navegador no tiene implantado de forma nativa dicha instruccion (getElementsByClassName)

He mirado por internet y lo que he conseguido ver es esta funcion:

Código Javascript:
Ver original
  1. <script type='text/javascript'>
  2. document.getElementsByClassName = function(cl, sTagName) {
  3.     var retnode = [];
  4.     var myclass = new RegExp('\\b'+cl+'\\b');
  5.     var elem = this.getElementsByTagName((sTagName===""||sTagName===null)?"*":sTagName);
  6.     for (var i = 0; i < elem.length; i++) {
  7.         var classes = elem[i].className;
  8.         if (myclass.test(classes)) retnode.push(elem[i]);
  9.     }
  10.     return retnode;
  11. };
  12. </script>

Así que cuando llamo a la función ocultar('contenido','div'):


Código Javascript:
Ver original
  1. function ocultar(id,tipo) {
  2.     var capa = [];
  3.     var capa = document.getElementsByClassName(id);
  4.     for (var i = 0; i < capa.length; i++) {
  5.     capa.style.display = "none";
  6.     capa.style.visibility = "hidden";}}


no me realiza la función de ocultar los div que tengan la clase 'contenido'


¿Qué puedo estar haciendo mal?

Última edición por joselegolas; 24/06/2013 a las 13:35
  #2 (permalink)  
Antiguo 24/06/2013, 14:12
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: getElementsByClassName

usa la función querySelector() o querySelectorAll()
__________________
if(ViolenciaDeGénero) {alert('MUJER ASESINADA');}
  #3 (permalink)  
Antiguo 24/06/2013, 14:42
 
Fecha de Ingreso: marzo-2013
Mensajes: 83
Antigüedad: 11 años, 1 mes
Puntos: 0
Respuesta: getElementsByClassName

Solucionado de la siguiente forma:

Código Javascript:
Ver original
  1. function ocultar() {
  2.     var capa = document.querySelectorAll('.contenido');
  3.     for (var i = 0; i < capa.length; i++) {
  4.     capa[i].style.display = "none";
  5.     capa[i].style.visibility = "hidden";}}

Última edición por joselegolas; 24/06/2013 a las 15:13

Etiquetas: funcion, php
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 10:27.