Foros del Web » Programando para Internet » Javascript »

Utilizar "GetElemenBy" con elemento "Class"

Estas en el tema de Utilizar "GetElemenBy" con elemento "Class" en el foro de Javascript en Foros del Web. Muy buenas a todos! :) Tengo un pequeño problema con este código de javascript. Lo que quiero que haga el código es minimizar y maximizar ...
  #1 (permalink)  
Antiguo 26/12/2012, 19:28
 
Fecha de Ingreso: diciembre-2012
Ubicación: España
Mensajes: 10
Antigüedad: 11 años, 4 meses
Puntos: 0
Pregunta Utilizar "GetElemenBy" con elemento "Class"

Muy buenas a todos! :)
Tengo un pequeño problema con este código de javascript. Lo que quiero que haga el código es minimizar y maximizar dos elementos div (ocultarlos y volverlos a mostrar).

El problema es que al no ser unico el elemento no puedo utilizar la etiqueta "id", por lo que necesitaría un "getElementByClass" que ocultara y mostrara los dos elementos cuando se pulsa el botón.
Me he estado informando y esto no es posible por lo que veo porque no existe tal función.

Entonces me gustaría si alguien conociese alguna solución que me la diga, porque el código es copiado de una web que utiliza el getElementById, no es hecho por mi. Yo no tengo ni idea de javascript xD

Muchísimas gracias de antemano y aquí os dejo el código


Código Javascript:
Ver original
  1. <script language="javascript" type="text/javascript"><!-- Script del tutorial-->
  2. <!--
  3. function minimizar(nombre_capa){
  4. document.getElementById(nombre_capa).style.display="none";
  5. }
  6. function maximizar(nombre_capa){
  7. document.getElementById(nombre_capa).style.display="block";
  8. }
  9. //-->
  10. </script>


Código HTML:
Ver original
  1. <div id="max1">
  2. <!--Elemento a ocultar 1-->
  3. </div>
  4.  
  5. <input name="imagefield" type="image" src="images/botones/menos.button.png" onclick="minimizar('max1')" class="menos"/>
  6. <input name="imagefield" type="image" src="images/botones/mas.button.png" onclick="maximizar('max1')" class="mas"/>
  7.  
  8. <div id="max1">
  9. <!--Elemento a ocultar 2-->
  10. </div>
  #2 (permalink)  
Antiguo 26/12/2012, 19:41
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: Utilizar "GetElemenBy" con elemento "Class"

verifica si te sirve esto http://help.dottoro.com/ljpxmhgp.php, saludos
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #3 (permalink)  
Antiguo 26/12/2012, 20:03
 
Fecha de Ingreso: diciembre-2012
Ubicación: España
Mensajes: 10
Antigüedad: 11 años, 4 meses
Puntos: 0
Respuesta: Utilizar "GetElemenBy" con elemento "Class"

Gracias por contestar :)
En principio no me ha funcionado, pero no se si es porque lo he implementado mal. Esque no tengo ni idea de javascript

Así es como lo tengo ahora:

Código Javascript:
Ver original
  1. <script language="javascript" type="text/javascript"><!-- Script del tutorial-->
  2. <!--
  3. function minimizar(nombre_capa){
  4. object.getElementsByClassName(nombre_capa).style.display="none";
  5. }
  6. function maximizar(nombre_capa){
  7. object.getElementsByClassName(nombre_capa).style.display="block";
  8. }
  9. //-->
  10. </script>

Código HTML:
Ver original
  1. <div class="max1">
  2. <!--Elemento a ocultar 1-->
  3. </div>
  4. *
  5. <input name="imagefield" type="image" src="images/botones/menos.button.png" onclick="minimizar('max1')" class="menos"/>
  6. <input name="imagefield" type="image" src="images/botones/mas.button.png" onclick="maximizar('max1')" class="mas"/>
  7. *
  8. <div class="max1">
  9. <!--Elemento a ocultar 2-->
  10. </div>
  #4 (permalink)  
Antiguo 26/12/2012, 20:08
Avatar de danny_  
Fecha de Ingreso: septiembre-2012
Mensajes: 95
Antigüedad: 11 años, 7 meses
Puntos: 4
Respuesta: Utilizar "GetElemenBy" con elemento "Class"

Para acceder a dichas etiquetas tienes la opcion de utlizar el método querySelectorAll(); Dentro de sus parametros simplemente tienes que poner la ruta css y éste apuntará hacia los elementos que tu le indiques y asi acceder al DOM de tu documento.

Échale un ojito a ésto es muy útil está función https://developer.mozilla.org/es/doc...erySelectorAll
  #5 (permalink)  
Antiguo 26/12/2012, 20:25
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: Utilizar "GetElemenBy" con elemento "Class"

pudieras hacer algo como esto
Código Javascript:
Ver original
  1. var myDivs = document.getElementByClassName('myClass');
  2. for (var i = 0; i < myDivs.length; i++) {
  3.     var actualDiv = myDivs[i];
  4.     actualDiv.style.display = "none"; //o el block cuando es para mostrar                
  5. }

imagino que le puede servir cuando lo hace con el querySelectorAll ya que ambas funciones devuelven un NodeList, saludos
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #6 (permalink)  
Antiguo 26/12/2012, 20:35
 
Fecha de Ingreso: diciembre-2012
Ubicación: España
Mensajes: 10
Antigüedad: 11 años, 4 meses
Puntos: 0
Respuesta: Utilizar "GetElemenBy" con elemento "Class"

Cita:
Iniciado por danny_ Ver Mensaje
Para acceder a dichas etiquetas tienes la opcion de utlizar el método querySelectorAll(); Dentro de sus parametros simplemente tienes que poner la ruta css y éste apuntará hacia los elementos que tu le indiques y asi acceder al DOM de tu documento.

Échale un ojito a ésto es muy útil está función [URL="https://developer.mozilla.org/es/docs/DOM/Document.querySelectorAll"]https://developer.mozilla.org/es/docs/DOM/Document.querySelectorAll[/URL]
Ajám, el problema es que no se como implementarlo :S
¿Sería algo así?:

Código Javascript:
Ver original
  1. function minimizar(nombre_capa){
  2. document.querySelectorAll(nombre_capa).style.display="none";
  3. }

Código HTML:
Ver original
  1. <input name="imagefield" type="image" src="images/botones/menos.button.png" onclick="minimizar("div.max1, div.max2")" class="menos"/>
  2.  
  3. <div class="max1">
  4. </div>
  5. <div class="max2">

<----------------------------------------------------------------------------------------------------->

Cita:
Iniciado por carlos_belisario Ver Mensaje
pudieras hacer algo como esto
Código Javascript:
Ver original
  1. var myDivs = document.getElementByClassName('myClass');
  2. for (var i = 0; i < myDivs.length; i++) {
  3.     var actualDiv = myDivs[i];
  4.     actualDiv.style.display = "none"; //o el block cuando es para mostrar                
  5. }

imagino que le puede servir cuando lo hace con el querySelectorAll ya que ambas funciones devuelven un NodeList, saludos
Lo he implementado de la siguiente manera, pero no me sale:

Código Javascript:
Ver original
  1. function minimizar(nombre_capa){
  2. var myDivs = document.getElementByClassName(nombre_capa);
  3. for (var i = 0; i < myDivs.length; i++) {
  4. var actualDiv = myDivs[i];
  5. actualDiv.style.display = "none"; //o el block cuando es para mostrar
  6. }
  7. }

Y luego en el html he puesto:

Código HTML:
Ver original
  1. <input name="imagefield" type="image" src="images/botones/menos.button.png" onclick="minimizar('max1')" class="menos"/>
  2.  
  3. <div class="max1">
  4. Recuadro a reducir
  5. </div>

Última edición por husseincak; 26/12/2012 a las 20:56
  #7 (permalink)  
Antiguo 26/12/2012, 21:13
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: Utilizar "GetElemenBy" con elemento "Class"

algún error que podamos ver??
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #8 (permalink)  
Antiguo 26/12/2012, 21:44
 
Fecha de Ingreso: diciembre-2012
Ubicación: España
Mensajes: 10
Antigüedad: 11 años, 4 meses
Puntos: 0
Respuesta: Utilizar "GetElemenBy" con elemento "Class"

Cita:
Iniciado por carlos_belisario Ver Mensaje
algún error que podamos ver??
No se me muestra ningun error, simplemente no funciona el codigo. Creo que el problema es al implementarlo en los botones. Me explico: en la etiqueta (supongo que pulsando en esa parte, todos los div con el class="max1" desaparecen)
Código:
onclick="minimizar('max1')"
no se si estoy llamando bien al codigo de javascript.

el codigo de javascript lo deje asi (tampoco se si lo tengo bien, porque no tengo ni idea. Simplemente como iba intuiendo lo iba poniendo):

Código Javascript:
Ver original
  1. function minimizar(nombre_capa){
  2. var myDivs = document.getElementByClassName(nombre_capa);
  3. for (var i = 0; i < myDivs.length; i++) {
  4. * * var actualDiv = myDivs[i];
  5. * * actualDiv.style.display = "none"; //o el block cuando es para mostrar * * * * * * * *
  6. }
  7. }
  #9 (permalink)  
Antiguo 26/12/2012, 21:55
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 10 meses
Puntos: 1567
Respuesta: Utilizar "GetElemenBy" con elemento "Class"

@husseincak

El problema principal nace de tu propia afirmación:
Cita:
Yo no tengo ni idea de javascript
Creo que la lectura de un buen manual es lo más recomendado
http://librosweb.es
puede ser un buen punto de partida.

Eso de copiar código vaya a saber e donde y sin tener conocimiento de lo que representa no te va a llevar a ningún lado, salvo claro, que por casualidad dicho código se ajuste a lo que necesitas
De todas manera a manera de orientación te señalo que la solución a tu problema es más que sencilla y perfectamente podés utilizar diferentes id para identificar los elementos a ocultar ya que según señalas son dos elementos conocidos y definidos por vos mismo.

A ver una pequeña pista
Sabiendo que esto muestra el div de id="uno" e id="dos"
Código Javascript:
Ver original
  1. document.getElementById('uno').style.display = 'block';
  2. document.getElementById('dos').style.display = 'block';

El resto es bastante fácil de deducir, y por lo de
Cita:
Ajám, el problema es que no se como implementarlo :S
lo dicho, los manuales

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #10 (permalink)  
Antiguo 27/12/2012, 20:46
 
Fecha de Ingreso: diciembre-2012
Ubicación: España
Mensajes: 10
Antigüedad: 11 años, 4 meses
Puntos: 0
Respuesta: Utilizar "GetElemenBy" con elemento "Class"

@emprear muchas gracias, al final lo saque gracias a tí. Y de paso me pillo la pagina que me has recomendado, se ve muy buena.

Etiquetas: elemento, input
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 19:23.