11486 sujets

JavaScript, DOM et API Web HTML5

Pages :
(reprise du message précédent)

il manquait juste un à :
o=new Option(l1.options[i].text,l1.options[i].value); 

par contre il ajoute tous à la liste sauf un.. je pensais que tout à l'heure il ne m'avait pas ajouté un champ parce que j'avais je l'avais sélectionne mais non ...
on a remarqué l'erreur en même temps ^^

parcontre je viens de refaire un test et il saute une fois sur deux... donc on doit passer deux fois au champ suivant je pense... je continue de regarder... si t'as une idée ?
[/i][/i]
Modifié par mini-truc (03 May 2011 - 16:40)
et là ?

function Tous(l1,l2){  
            var i =0; 
            //pas fan de ta boucle while puisque on sait quand ça va se finir grace à .length 
            for(i=0 ; i < l1.length ; i++ ){  
                //si tu lui précises pas qu'elle option il doit créer il risque de pas comprendre 
                // donc là on lui dit qu'on veut la i niéme  
                o=new Option(l1.options.text,l1.options[i].value);  
                //voila maintenant on la rajoute dans la liste 2 à la derniere position de la liste 2 
                l2.options[l2.options.length]=o;      
                //pour finir on retire l'option qui se trouve dans la liste 1 à la i niéme position 
               
            }  
            l1.length=0;

        } 

Selon c'est parce que on modifier la condition d’arrêt de la boucle dans la boucle.[/i]
Modifié par Su4p (03 May 2011 - 16:43)
function Tous(l1,l2){  
            var i =0; 
            //pas fan de ta boucle while puisque on sait quand ça va se finir grace à .length 
            //for(i=1 ; i < l1.length ; i+0.5 ){  
			while(l1.options[i].text!=null){
                // donc là on lui dit qu'on veut la i niéme  
                o=new Option(l1.options[i].text,l1.options[i].value);  
                //voila maintenant on la rajoute dans la liste 2 à la derniere position de la liste 2 
                l2.options[l2.options.length]=o;      
                //pour finir on retire l'option qui se trouve dans la liste 1 à la i niéme position 
                l1.remove(i); 
            }  
        } 


J'ai juste remplacer ton for par un while et çà marche nickel... maintenant pourquoi il prenait un sur deux je ne sais pas ^^

encore un grand merci pour ton aide !![/i][/i][/i]
J'ai testé également ton for et il fonctionne trés bien aussi,j'ai juste rajouté les aprés options ^^ je publie en debut de sujet la nouvelle solution !

(merci encore !)
Pages :