supprimer un element avec removechild() selon la valeur dans un select

supprimer un element avec removechild() selon la valeur dans un select - HTML/CSS - Programmation

Marsh Posté le 03-12-2007 à 11:28:17    

Bonjour,
j'ai une fonction qui est censé supprimer une valeur dans un select
j'ai fait ceci ...

Code :
  1. document.getElementById('liste_deroulante').removeChild(document.getElementById('liste_deroulante').options[0]);

... mais ça supprime la premiere valeur de mon select.
comment purrais je faire pour qu'il me supprime l'option qui a pour valeur '02' (uniquement si il existe un option avec cette valeur).
 
Merci de votre aide

Reply

Marsh Posté le 03-12-2007 à 11:28:17   

Reply

Marsh Posté le 03-12-2007 à 11:52:28    

donc si je résume, si ton options a pour valeur "02" il faut la virer ?

Code :
  1. var options = document.getElementById ("liste_deroulante" ).options;
  2. var i = 0;
  3. while (options[i].value != "02" )
  4.   i++;
  5. options[i].parentNode.removeChild (options[i]);


---------------
We deserve everything that's coming...
Reply

Marsh Posté le 03-12-2007 à 12:13:18    

super  ... ca marche a merveille !
autre petite question .. la fonction doit faire la même chose (supprimer la valeur 02) sur un autre select, nommé liste_deroulante2
comment dois-je m'y prendre ?
 
merci encore

Reply

Marsh Posté le 03-12-2007 à 12:39:00    

je te mets sur la voie : document.getElementById ("liste_deroulante2" )
super complexe pas vrai ? ;)


---------------
We deserve everything that's coming...
Reply

Marsh Posté le 03-12-2007 à 13:11:55    

bon ... on se moque pas   :lol:  
j'ai fait ceci ..

Code :
  1. var options2 = document.getElementById ("liste_deroulante2" ).options;
  2. var options = document.getElementById ("liste_deroulante" ).options;
  3. var i = 0;
  4. while (options2[i].value != "101" )
  5.   i++;
  6. options2[i].parentNode.removeChild (options2[i]);
  7. while (options[i].value != "101" )
  8.   i++;
  9. options[i].parentNode.removeChild (options[i]);


 
mais j'ai une erreur losque la valeur 101 n'existe pas
 
merci encore

Reply

Marsh Posté le 03-12-2007 à 13:16:57    

apres le premier while (de la ligne 4), remet la variable i à 0 :)

 
Code :
  1. var options2 = document.getElementById ("liste_deroulante2" ).options;
  2. var options = document.getElementById ("liste_deroulante" ).options;
  3. var i = 0;
  4. while (options2[i].value != "101" )
  5.   i++;
  6. options2[i].parentNode.removeChild (options2[i]);
  7. i = 0; // i DOIT être remis à zéro, sinon on continu à l'incrémenter selon sa valeur précedente ;)
  8. while (options[i].value != "101" )
  9.   i++;
  10. options[i].parentNode.removeChild (options[i]);
 

et je ne moque pas ne t'en fais pas :jap:


Message édité par SICKofitALL le 03-12-2007 à 13:18:46

---------------
We deserve everything that's coming...
Reply

Marsh Posté le 03-12-2007 à 13:33:26    

Ha oui ... en effet :ange:  
 
mais j'ai toujours une erreur JS lorsque mon select ne comporte pas valeur à 101  
'value' a la valeur null ou n'est pas un objet
 
merci

Reply

Marsh Posté le 03-12-2007 à 13:38:50    

il te sort où cette erreur ?
sur les lignes avec les while ?

 

EDIT:
ah oui c normal en fait, il tente de supprimer l'élement meme s'il a pas trouvé qqch :D
attend je corrige ca :)


Message édité par SICKofitALL le 03-12-2007 à 13:40:24

---------------
We deserve everything that's coming...
Reply

Marsh Posté le 03-12-2007 à 13:43:15    

oui en effet .. si la valeur 101 n'existe pas dans le select menu_deroulante2.
l'erreur sera sur la ligne while (options2[i].value != "101" )
 
merci encore


Message édité par attentio le 03-12-2007 à 13:44:04
Reply

Marsh Posté le 03-12-2007 à 14:20:49    

Voila ca devrait être plus propre je pense :)
Je t'es mis ca sous forme de fonction

Code :
  1. // value : chaine à chercher
  2. // selectID : ID du select dans lequel chercher "value"
  3. var removeOption = function (value, selectID)
  4. {
  5.   var options = document.getElementById (selectID).options;
  6.   var i = 0;
  7.   var l = options.length;
  8.   while (i < l && options[i].value != value)
  9. i++;
  10.   if (i < l)
  11. options[i].parentNode.removeChild (options[i]);
  12. }
  13. removeOption ("101", "liste_deroulante2" );
  14. removeOption ("101", "liste_deroulante" );


 
Si t'as des questions :hello:


---------------
We deserve everything that's coming...
Reply

Sujets relatifs:

Leave a Replay

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