Foros del Web » Programando para Internet » Javascript »

GUARDAR ID de DIVS en ARRAY

Estas en el tema de GUARDAR ID de DIVS en ARRAY en el foro de Javascript en Foros del Web. Hola amigos, soy nuevo en este foro y este es mi primera duda: Tengo una web en la cual quiero controlar el numero de divs ...
  #1 (permalink)  
Antiguo 27/06/2008, 14:26
 
Fecha de Ingreso: junio-2008
Mensajes: 10
Antigüedad: 15 años, 10 meses
Puntos: 0
GUARDAR ID de DIVS en ARRAY

Hola amigos, soy nuevo en este foro y este es mi primera duda:

Tengo una web en la cual quiero controlar el numero de divs de poseen una determinada clase, quiero obtener su identificacion (getelementbyid()) y guardar dicha identificacion en un array...para poder luego jugar con ese array y mostrar/ocultar los divs de acuerdo a sus identificaciones.

1. Lo primero que hice es una "prueba" en la ke io mismo sabia cuales eran esos ids de los div y me funciona perfectamente
2. quisiera hacer lo mismo, pero mediante una funcion, la cual me guarde los id's de esos divs, para luego trabajar con ellos (quisiera que la funcion me los hiciera solita, sin que io mismo intervenga...) ¿Como lo podria hacer?

A continuacion les adjunto el code:
Cita:
<html>
<head>

<script type="text/javascript">

function show(id)
{
var A = ['home', 'noti', 'rank']; //divs que se mostraran al lado derecho

for(i=0; i<A.length; i++)
{
if( id == A[i] ) { document.getElementById(A[i]).style.zIndex=1; } //muestra objetivo
else { document.getElementById(A[i]).style.zIndex=0; } //oculta demas
}
}

</script>

<style>

body { background: #222; text-align:center; }
#contenedor
{
text-align: left;
width: 500px;
background-color: #fff;
margin: auto;
padding: 10px;
}
#cab
{
height: 100px;
width: 100%;
background-color: #789;
}
#izq2 { width: 20%; background: green; float: left; }
#izq { width: 20%; background: #069; float: left; }
#der { width: 80%; background: #456; float: left; }

.div_der { position: absolute; margin: 0; padding: 10px; z-index:0; }
#noti { background: #ccc; color: black; }
#home { background: #eee; color: 654; }
#rank { background: #ddd; color: 432; }

#pie { width: 100%; height: 20px; background: #333; color: white; clear: both; }

</style>
</head>

<body>

<div id="contenedor">
<div id="cab">Cab</div>
<div id="izq">
<a href="#" onclick="show('home');">Home 2</a><br>
<a href="#" onclick="show('noti');">Noti 2</a><br>
<a href="#" onclick="show('rank');">Rank 2</a><br>
</div>
<div id="der">
<div id=home class=div_der>home lalalala</div>
<div id=noti class=div_der>noticias lalalala</div>
<div id=rank class=div_der>ranking lalalala</div>
</div>
<div id="pie">pie</div>
</div>

</body>
</html>
:: ¿como hago una funcion que detecte las identificaciones de los id, las guarde en un array y posteriormente jugar con el array de identificaciones para mostrar/ocultar los divs en cuestion?

Cualquier sugerencia es bien recibida ^^
  #2 (permalink)  
Antiguo 27/06/2008, 20:44
Avatar de derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 20 años, 6 meses
Puntos: 45
Respuesta: GUARDAR ID de DIVS en ARRAY

Hola pelusete, bienvenido al foro:

Creo que lo que estás buscando es la función no nativa document.getElementsByClassName(), implementada en algunos frameworks como Prototype (Ahora la llaman doble dólar $$(), y hace más cosas). Básicamente consiste en recorrer todos los elementos del documento buscando aquellos que tienen el className que a ti te interese.

Creo que en tu caso podría servir también coger todos los DIVs dentro del DIV con id der:

Código PHP:
var misDivs document.getElementById("der").getElementsByTagName("DIV"); 
Así tendrías los 3 DIVs en un array, no tendrías que almacenar sus id's porque ya los tendrías directamente y podrías hacer:
Código PHP:
misDivs[1].style.zIndex 1
Para mostrar el de id noti.


Espero haberte ayudado.
Saludos
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.
  #3 (permalink)  
Antiguo 27/06/2008, 21:30
 
Fecha de Ingreso: junio-2008
Mensajes: 10
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: GUARDAR ID de DIVS en ARRAY

Garcias derkenuke por tu respuesta
esta genial lo ke me dices...pero sigo teniendo una duda...

Este codigo efecvtivamente me guarda en un array todos los divs ke esten dentro de DER
Cita:
var misDivs = document.getElementById("der").getElementsByTagNam e("DIV");
Y asi puedo acceder a una propierdad de un div en especial con:
Cita:
misDivs[1].style.zIndex = 1;
Aki va mi duda...

¿como puedo comparar la ID ingresada por parametro a la guardada en el array misDivs?

tengo aki un code...pero no me funciona
Cita:
function captar(id)
{
var misDivs = document.getElementById("der").getElementsByTagNam e("DIV");

for(i=0; i < misDivs.length; i++)
{
if( id == misDivs[i].value ) { alert("mostrar " + misDivs[i].value); } //muestra objetivo
else { alert("ocultar " + misDivs[i].value); } //oculta demas
}
}
¿como podria lograrlo?
  #4 (permalink)  
Antiguo 27/06/2008, 21:35
Avatar de derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 20 años, 6 meses
Puntos: 45
Respuesta: GUARDAR ID de DIVS en ARRAY

Hola de nuevo:

Podría ser:
Código PHP:
if( id === misDivs[i].id ) { } 
Se puede acceder directamente al atributo, o se puede utilizar getAttribute("id") o getAttributeNode("id").nodeValue, las tres fórmulas te devolverán lo mismo.


Saludos!
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.
  #5 (permalink)  
Antiguo 27/06/2008, 22:37
 
Fecha de Ingreso: junio-2008
Mensajes: 10
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: GUARDAR ID de DIVS en ARRAY

derkenuke muchisimas gracias!!! ^^
pude lograr lo que queria gracias a ti!

Muchisimas gracias!! ^^

Aki te dejo el code
Cita:
<html>
<head>

<script type="text/javascript">

function show(id)
{
var misDivs = document.getElementById("der").getElementsByTagNam e("DIV");

for(i=0; i < misDivs.length; i++)
{
if( id == misDivs[i].id ) { misDivs[i].style.zIndex = 1; } //muestra objetivo
else {misDivs[i].style.zIndex = 0; } //oculta demas
}
}

</script>

<style>

body { background: #222; text-align:center; }
#contenedor
{
text-align: left;
width: 500px;
background-color: #fff;
margin: auto;
padding: 10px;
}
#cab
{
height: 100px;
width: 100%;
background-color: #789;
}
#izq2 { width: 20%; background: green; float: left; }
#izq { width: 20%; background: #069; float: left; }
#der { width: 80%; background: #456; float: left; }

.div_der { position: absolute; margin: 0; padding: 10px; z-index:0; }
#noti { background: #ccc; color: black; }
#home { background: #eee; color: 654; }
#rank { background: #ddd; color: 432; }

#pie { width: 100%; height: 20px; background: #333; color: white; clear: both; }

</style>
</head>

<body>

<div id="contenedor">
<div id="cab">Cab</div>
<div id="izq">
<a href="#" onclick="show('home');">Home 2</a><br>
<a href="#" onclick="show('noti');">Noti 2</a><br>
<a href="#" onclick="show('rank');">Rank 2</a><br>
</div>
<div id="der">
<div id=home class=div_der>home lalalala</div>
<div id=noti class=div_der>noticias lalalala</div>
<div id=rank class=div_der>ranking lalalala</div>
</div>
<div id="pie">pie</div>
</div>

</body>
</html>
Muchas gracias!!! :D
  #6 (permalink)  
Antiguo 28/06/2008, 08:47
Avatar de derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 20 años, 6 meses
Puntos: 45
Respuesta: GUARDAR ID de DIVS en ARRAY

Muchas de nadas
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.
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 05:21.