gatsu35 Blablaté par Harko | olivthill a écrit :
La petite subtilité à connaître, c'est que lorsqu'une option est supprimée de la liste, madame Javascript réorganise toute la liste, et il faut donc repartir du début pour supprimer l'option suivante.
|
Il faut savoir qu'une nodeList (ce qu'est select.options) est dynamique. Donc si tu supprime l'élément n de la liste, alors l'élément n+1 prend la place de l'élément n, n+2 prend la place de n+1....
Et au lieu de reparcourir stupidement le tableau, tu fais un simple i-- et basta, bien sur il faut que ton for contient cette règle : i<options.length (sachant que options.length est récupéré à chaque itération de la boucle for).
et accessoirement les <option> ca se ferme putain, je m'en fous qu'on soit en HTML 4 ou 3, le HTML a été trop gentil pour laisser de telles stupidités.
et autrement voila un code propre :
Code :
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="cs" lang="cs">
- <head>
- <meta name="generator" content="PSPad editor, www.pspad.com" />
- <meta http-equiv="content-type" content="text/html; charset=iso-8859-2" />
- <title>Untitled</title>
- <script type="text/javascript">
- function removeSelectOpt(selId) {
- var sel = document.getElementById(selId);
- for (var i=0; i<sel.options.length; i++) {
- var opt = sel.options[i];
- if (opt.selected) {
- sel.removeChild(opt);
- i--;
- }
- }
- }
- </script>
- </head>
- <body>
- <select name="lstbox1" id="fruits" size="5" multiple="multiple">
- <option value="a">Abricot</option>
- <option value="b" selected="selected">Banane</option>
- <option value="c" selected="selected">Cerise</option>
- <option value="d" selected="selected">Datte</option>
- <option value="e">Endive</option>
- <option value="f">Pouet</option>
- <option value="f">Pouet1</option>
- <option value="f">Pouet2</option>
- <option value="f">Pouet3</option>
- <option value="f">Pouet4</option>
- <option value="f">Pouet5</option>
- <option value="f">Pouet6</option>
- <option value="f">Pouet7</option>
- <option value="f">Pouet8</option>
- </select>
- <input type="button" onclick="removeSelectOpt('fruits')" value="Supprimer les fruits sélectionnés" />
- </body>
- </html>
|
|