Salut,
Peut on récupérer l'id d'un élément html à partir de son nom?
Par exemple j'ai:
Avec getElementsByName("nomconstant") je voudrais récupérer l'id correspondant.<div id="mon_id_variable" name="nom_constant">
Comment faire?
Merci
Salut,
Peut on récupérer l'id d'un élément html à partir de son nom?
Par exemple j'ai:
Avec getElementsByName("nomconstant") je voudrais récupérer l'id correspondant.<div id="mon_id_variable" name="nom_constant">
Comment faire?
Merci
ca ne marche pas ca ?
Fremy
Code : Sélectionner tout - Visualiser dans une fenêtre à part GetElementByName("monnom").id
Lance cette page et tu comprendra.
tu dois utiliser [0] pour recevoir le premier controle ayant pour nom "s", [1] pour obtenir le 2e, ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 <html> <body> <span name="s" id="t"></span> <script> for (property in document.getElementsByName("s")[0]) { document.getElementsByName("s")[0].innerHTML = document.getElementsByName("s")[0].innerHTML + property + "<br />" } </script> </body> </html>
J'explique ce que je veux faire.
J'ai X div.
Quan je clique sur un bouton et que le div lui correpondant est visible, je le rend invisible avec display:none;
Lorsque je clique sur ce meme bouton et qu'il est invisible, je veux le rendre visible, mais tous les autres invisibles
Sachant que mes div portent le même nom block, que leur id est block_a ou block_b etc... et que le nom des bouton est button_*lettre* j'ai fait ça:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 function DisableEnable(lettre) { block = "block_" + lettre; mod = document.getElementById(block).style.display; nbblocks = document.getElementsByName('block').length; // renvoit toujours 0 même s'il y en a 2 ! if (mod == 'none') { document.getElementById(block).style.display = 'block'; for(i=0; i<nbblocks; i++) { if (*block different de celui en question*) document.getElementsByName('block')[i].style.display = 'none'; } document.getElementsByName('button_' + lettre)[0].style.color = 'orange'; } else { document.getElementById(block).style.display = 'none'; document.getElementsByName('button_' + lettre)[0].style.color = 'black'; } }
A la place de block_a, b, c utilise block_0, 1, 2
et ce code (vérrifie qu'il ne reste pas qques fautes dedans)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 try { for(i=0; i<100; i++) { if (chiffre != i) document.getElementById('block_' + i).style.display = 'none'; } } catch (ex) {alert('la fin de la liste a été atteinte')}
Bon j'ai mis des nombre (ou lettre est égal à un nombre) et j'ai fais:
Mais mes couleurs ne sont plus changées et quand j'ouvre un div les autres ne se ferment pas
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 function DisableEnable(lettre) { block = "block_" + lettre; mod = document.getElementById(block).style.display; if (mod == 'none') { document.getElementById(block).style.display = 'block'; # Ici ça plante for(i=0; i<26; i++) { if (i != lettre) document.getElementById('block_' + i).style.display = 'none'; } document.getElementById('button_' + lettre).style.color = 'orange'; # } else { document.getElementById(block).style.display = 'none'; document.getElementById('button_' + lettre).style.color = 'black'; } }
Lol c'est normal, tu mélange tout !
tu dois choisir 'block_' + i OU "block_" + lettre;
Je vais un peu relooker tout ca :-)
Je poste ma réponse d'ici peu.
Fremy
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 // Fichier JScript function DisableEnable(chiffre) { block = "block_" + chiffre; mod = document.getElementById(block).style.display; if (mod == 'none') { document.getElementById(block).style.display = 'block'; try { for(i=0; i<1000; i++) { if (i != chiffre) document.getElementById('block_' + i).style.display = 'none'; } document.getElementById('button_' + chiffre).style.color = 'orange'; } catch (ex) {/*Liste terminée*/} } else { document.getElementById(block).style.display = 'none'; document.getElementById('button_' + chiffre).style.color = 'black'; } }
Merci mais ce que tu m'as dit est exactement la même chose que moi sauf que tu as changé lettre par chiffre, tu as mis try (facultatif je pense) et mis i < 1000 au lieu de i < 26 pour l'alphabet.
Voila ou ça plante miantenant:
Si je fais:
J'ai que 1 alert: alert('0');
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 for (var i = 0; i < 26; i++) { alert('ok' + i); if (i != chiffre) { document.getElementById('block_' + i).style.display = 'none'; } }
Si je fais:
Ca va bien jusqu'à 25. C'est ce qui arrête tout ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 for (var i = 0; i < 26; i++) { alert('ok' + i); /*if (i != chiffre) { document.getElementById('block_' + i).style.display = 'none'; }*/ }
bonjour,
voici une méthode simple : au départ aucun élément n'est affiché. Lors du chargement de la page j'appelle la fonction Affiche() et je lui transmet comme argument le numéro de l'élément que je veux afficher.Envoyé par Anduriel
Il n'est pas nécessaire de passer tous les éléments en revue : si tu n'en affiche qu'un à la fois seul le dernier élément affiché est à cacher. C'est ce que fait ce code.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59 <html> <head> <title></title> <style type="text/css"> <!-- div{ border: 2px solid #A1B2C3; width: 200px; height: 40px; display: none; } //--> </style> <script type="text/javascript"> <!-- var oldDiv = null; function Affiche(numDiv) { var nomDiv = "idDiv"+numDiv.toString(); var eDiv = document.getElementById(nomDiv); eDiv.style.display = "block"; if (oldDiv!=null) { oldDiv.style.display = "none"; } oldDiv = eDiv; } //--> </script> </head> <body onload="Affiche(1)"> <input type="button" value=" B1 " id="B1" onclick="Affiche(1)"> <input type="button" value=" B2 " id="B2" onclick="Affiche(2)"> <input type="button" value=" B3 " id="B3" onclick="Affiche(3)"> <input type="button" value=" B4 " id="B4" onclick="Affiche(4)"> <input type="button" value=" B5 " id="B5" onclick="Affiche(5)"> <input type="button" value=" B6 " id="B6" onclick="Affiche(6)"> <input type="button" value=" B7 " id="B7" onclick="Affiche(7)"> <br><br> <div id="idDiv1">Div 1</div> <div id="idDiv2">Div 2</div> <div id="idDiv3">Div 3</div> <div id="idDiv4">Div 4</div> <div id="idDiv5">Div 5</div> <div id="idDiv6">Div 6</div> <div id="idDiv7">Div 7</div> </body> </html>
Génial !
Merci
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager