Aller au contenu

getElementbyid(?)


Ugo

Sujets conseillés

Bonjour à tous !

Je rencontre un petit problème...

Tout d'abord, voici mes codes :

<script type="text/javascript">
function toggle(object_id){
var obj=document.getElementById(object_id)
if((obj.style.display == 'block')||(obj.style.display == ''))
obj.style.display='none'
else
obj.style.display='block'
}
function cache(){
document.getElementById( ).style.display='none';
}
</script>

Et dans ma page

<ul>
<li><a href="java script:toggle('blocid')">Un vol en Californie</a><br>
<object id="blocid" width="400" height="327">..........

J'ai 6 blocid, ce qui me fait arriver à "<object id="blocid6"..." pour mon dernier bloc à afficher/masquer. Problème : J'aimerais qu'ils soient tous masquer au chargement de la page, mais je n'arrive pas à le lui dire !

Un seul, j'y arrive :

function cache(){
document.getElementById("blocid2").style.display='none';
}

mais pas tous...

Help !

Merci beaucoup

Ugo :)

Lien vers le commentaire
Partager sur d’autres sites

à vue de nez, il faut utiliser une boucle "for" pour lister tous les "DIV" de ta page, vérifier qu'il s'agit bien de ceux qu'on veut et leur appliquer la modif, ce qui donnerait quelque chose comme ça :

<div id="blocid1" "style=display:block;">1</div>
<div id="blocid2" "style=display:block;">2</div>
<div id="blocid3" "style=display:block;">3</div>
<div id="blocid4" "style=display:block;">4</div>
<div id="blocid5" "style=display:block;">5</div>
<div id="blocid6" "style=display:block;">6</div>

<a href="java script:masquer();">masquer</a>

<script language=javascript>
function masquer() {
var div_elem = document.getElementsByTagName("DIV");
for (i=0; div_elem.length; i++) {
// on recupère chaque objets DIV
var obj= div_elem[i];
// on récupère l'id de chaque objet DIV
var str_ID = obj.id;

// on verifis si l'id correspond à ce que l'on cherche
if (str_ID.substr(0,6) == 'blocid' ) {
// on applique la modif voulue
obj.style.display='none';
}

}
}
</SCRIPT>

c'est un scrip fait à la va vite, certainement perfectible ^^

edit :

on peut peut aussi faire une boucle for allant de 1 à 6 si on connait exactement le nombre de div concernés sans avoir besoin de passer en revu tous les DIV de la page :

function masquer() {

for (i=1; 6; i++) {
// on incrémante le nom de l'id recherché
var Div_nom = 'blocid' + i;
// on recupère chaque objets DIV par son ID
var obj= document.getElementById(Div_nom);

obj.style.display='none';

}
}

Modifié par libelinfo
Lien vers le commentaire
Partager sur d’autres sites

Sinon ils peuvent simplement être en display:none directement dans la feuille de style.

Il me semble avoir lu dans la doc de scriptaculous que ca merdait avec certains navigateurs et qu'il devenait impossible de les faire apparaitre ...

Lien vers le commentaire
Partager sur d’autres sites

Salut

Sinon ils peuvent simplement être en display:none directement dans la feuille de style.
C'est LA mauvaise idée par excellence ! :)

La dégradation sans Javascript serait très mauvaise, car les blocs ne s'afficheraient pas.

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...