OVH Cloud OVH Cloud

getElementById et

6 réponses
Avatar
jush
Bonjour,

J'ai une page html contenant pas mal de <div> sous cette forme :

<div Class="Contenu" id="Pro">
Bla bla bla bla bla
</div>
<div Class="Contenu" id="Perso">
Bla bla bla bla bla
</div>
<div Class="Contenu" id="Loisir">
Bla bla bla bla bla
</div>

d'autre par j'ai un menu constitué de liens :
--> Pro (<a href="#" onClick="Show(Pro);">)
--> Perso (<a href="#" onClick="Show(Perso);">)
--> Loisir (<a href="#" onClick="Show(Loisir);">)

j'aimerai au clic sur un lien faire appaitre le div correspondant. J'ai
donc fait 3 fonctions :

function show(showid)
{
hideAllDiv();
document.getElementById(showid).style.visibility="visible";
document.getElementById(showid).style.display="inline";
}

function hideDiv(divId)
{
document.getElementById(divId).style.visibility="hidden";
document.getElementById(divId).style.display="none";
}

function hideAllDiv()
{
ListId = ['Perso','Pro','Loisir'];
nb = ListId.length;
for (i=0; i<nb; i++)
{
hideDiv(document.getElementsById(ListId)[i].id);
}
}

Mais, et sinon je ne serai pas la, ca ne fonctionne pas .....
Ou est ce que j'ai fait une erreur ?

Merci
--
Jush

6 réponses

Avatar
Do Re Mi chel La Si Do
Bonjour !

Je ne sais pas répondre directement à ta question. Par contre, pour un
besoin similaire, j'utilise la position des <DIV>.

Losrque je ne veux pas voir un <DIV>, je le met à left:-9000px; Lorsque je
veux à nouveau l'admirer, je lui remet un left normal.

Et le tour est joué. Avantage : en faisant un left:-20px; on voit vite si
ça marche ou pas.

Rappel : tous mes <DIV> (ou <SPAN>) on un : style='position: absolute;
etc.


@-salutations
--
Michel Claveau
Avatar
Thibault TAILLANDIER
Bonjour !

Je ne sais pas répondre directement à ta question. Par contre, pour un
besoin similaire, j'utilise la position des <DIV>.

Losrque je ne veux pas voir un <DIV>, je le met à left:-9000px; Lorsque je
veux à nouveau l'admirer, je lui remet un left normal.


Salut
Arf arf arf, c'est pas propre ca ... c'est mal :-)
mettre a visibility: hidden; est tellement plus simple ...


Et le tour est joué. Avantage : en faisant un left:-20px; on voit vite si
ça marche ou pas.

Rappel : tous mes <DIV> (ou <SPAN>) on un : style='position: absolute;
etc.


@-salutations


Bye
--
Thibault

Avatar
jush
Bonjour !

Je ne sais pas répondre directement à ta question. Par contre, pour un
besoin similaire, j'utilise la position des <DIV>.

Losrque je ne veux pas voir un <DIV>, je le met à left:-9000px; Lorsque je
veux à nouveau l'admirer, je lui remet un left normal.

Et le tour est joué. Avantage : en faisant un left:-20px; on voit vite si
ça marche ou pas.

Rappel : tous mes <DIV> (ou <SPAN>) on un : style='position: absolute;
etc.


@-salutations


C'est en effet une solution a laquelle je n'ai pas pensé. Mais je ne
pense pas que cela change le fond du probleme.
Comment changer les attributs de tous les div en une seule fois avec un
fonction generale(pour etre sur que tous soit non-visible) et ne mettre
en position "visible" que celui désiré ?

Merci
--
Jush

Avatar
News M Claveau /Hamster-P
Bonsoir !

Arf arf arf
C'est quoi, ce rire démoniaque ? Quand je le teste en jscript, ça provoque



une erreur.

c'est pas propre ca
"La propreté, c'est très relatif", comme disait cette grosse feignasse de



Madame Propre

mettre a visibility: hidden; est tellement plus simple
obj.style.left -= 9000; c'est assez simple aussi. Et, pour restaurer :



obj.style.left += 9000;
Pour faire plus court, on pourrais prendre le "top"


Finalement, ça revient au même. Alors chacun fait comme il lui plaît, plaît,
plait !!!!

@-salutations
--
Michel Claveau



Avatar
ASM

obj.style.left -= 9000; c'est assez simple aussi. Et, pour restaurer :
obj.style.left += 9000;
Pour faire plus court, on pourrais prendre le "top"


Non ! on ne pourrait prendre le top (en négatif)
car refusé par bp de navigateurs

Finalement, ça revient au même. Alors chacun fait comme il lui plaît, plaît,
plait !!!!


Ton truc ne peut fonctionner que si en position absolute
(et nécessite de réserver la place quand en négatif
à moins d'accepter que çà ne vienne en sur-couche quand en positif)

ce qui ne répond pas vraiment à la problématique exposée
dans la question.

--
*******************************************************
Stéphane MORIAUX et son vieux Mac
Aide Pages Perso (images & couleurs, formulaire, CHP)
http://perso.wanadoo.fr/stephane.moriaux/internet/
*******************************************************

Avatar
News M Claveau /Hamster-P
Bonjour !

Non ! on ne pourrait prendre le top (en négatif) car refusé par bp de
navigateurs
En tout cas, ça marche avec IE




Ton truc ne peut fonctionner que si en position absolute
Absolument ; d'ailleurs je l'avais précisé dans ma première réponse.





@-salutations
--
Michel Claveau