Modifier le style dans une fonction (résolu)

Modifier le style dans une fonction (résolu) - HTML/CSS - Programmation

Marsh Posté le 14-06-2005 à 17:35:02    

Bonjour,
 
Je cherche à créer une fonction qui pourrait modifier les styles des liens.
Voici le code que j'ai écrit pour que vous compreniez le problème.
 
Je pense que je foire au niveau du passage de l'argument dans la fonction.
Il y a surement quelques notions de Javascript qui doivent me manquer.
Si vous arrivez à m'expliquer la faute que j'ai fait, ce serait très gentil.
merci.
 

Code :
  1. <html>
  2. <head>
  3. <style type="text/css">
  4. a{
  5.    color:black;
  6. }
  7. a.select{
  8.    font-weight:bold;
  9. }
  10. a.noselect{
  11.    font-weight:none;
  12. }
  13. </style>
  14. </head>
  15. <body>
  16. <script language="JavaScript">
  17. <!--//
  18. function change(num){
  19.    var inputID = 'input_'+num;
  20.    var linkID = 'link_'+num;
  21.    var coched = document.getElementById(inputID).checked;
  22.    if(coched==true){
  23.       document.getElementById(inputID).checked = false;
  24.       document.getElementById(linkID).className = "noselect";
  25.    }else{
  26.       document.getElementById(inputID).checked = true;
  27.       document.getElementById(linkID).className = "select";
  28.    }
  29. }
  30. defaultclass='noselect';
  31. for(i = 1; i <= 100 ; i++) // Début de la boucle
  32. {
  33.    document.write('<input name="input_'+i+'" type="checkbox" onclick="change('+i+');">');
  34.    document.write('<a href="#" id="link_'+i+'" onclick="change('+i+');" class="'+defaultclass+'">Numéro '+i+'</a><br>');
  35. }
  36. //-->
  37. </script>
  38. </body>
  39. </html>


Message édité par samyboy le 15-06-2005 à 10:59:19
Reply

Marsh Posté le 14-06-2005 à 17:35:02   

Reply

Marsh Posté le 14-06-2005 à 17:46:46    

Salut,
 
est-il normal que tu ne donne pas d'id à tes input ?

Reply

Marsh Posté le 14-06-2005 à 18:12:51    

samyboy a écrit :

Bonjour,
 
Je cherche à créer une fonction qui pourrait modifier les styles des liens.
Voici le code que j'ai écrit pour que vous compreniez le problème.


Aussi étonnant que ça puisse paraître, getElementById récupère les éléments sur leur ID, pas sur leur name


Message édité par masklinn le 14-06-2005 à 18:14:05

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 15-06-2005 à 10:38:05    

Je vous remercie de vos remarques. J'ai quelques lacunes dans le domaine du javascript mais j'ai réussi à faire quelequechose qui marche. Je ne sais pas si j'ai écrit dans les règles de l'art mais ça fonctionne et c'est le plus important.
 

Code :
  1. <html>
  2. <head>
  3. <style type="text/css">
  4. a{
  5. color:black;
  6. }
  7. a.select{
  8. font-weight:bold;
  9. }
  10. a.noselect{
  11. font-weight:none;
  12. }
  13. </style>
  14. </head>
  15. <body>
  16. <script language="JavaScript">
  17. <!--//
  18. function change(num,objet){
  19. var inputID = 'input_'+num;
  20. var linkID = 'link_'+num;
  21. var coched = document.getElementById(inputID).checked;
  22. if( ( (objet.value == "on" )&&(coched==true)) || ((objet.value != "on" )&&(coched==false))  ){
  23.  setValue(num,true);
  24. }else{
  25.  setValue(num,false);
  26. }
  27. }
  28. function setValue(num,status){
  29. var inputID = 'input_'+num;
  30. var linkID = 'link_'+num;
  31.      if(status==true){
  32.  document.getElementById(inputID).checked = true;
  33.  document.getElementById(linkID).className = "select";
  34. }else{
  35.  document.getElementById(inputID).checked = false;
  36.  document.getElementById(linkID).className = "noselect";
  37. }
  38. }
  39. defaultclass='noselect';
  40. for(i = 1; i <= 100 ; i++) // Début de la boucle
  41. {
  42. document.write('<input name="input_'+1+'" id="input_'+i+'" type="checkbox" onclick="change('+i+',this);">');
  43. document.write('<a href="#" id="link_'+i+'" onclick="change('+i+',this);" class="'+defaultclass+'">Numéro '+i+'</a><br>');
  44. }
  45. //-->
  46. </script>
  47. </body>
  48. </html>


Message édité par samyboy le 15-06-2005 à 10:38:40
Reply

Marsh Posté le 15-06-2005 à 10:48:17    

Si, y'a des lacunes au niveau JS... Surtout de part l'utilisation de document.write, qui date d'il y a 10 ans :D

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed