2010-05-07 1 views
0

J'essaie de créer un bouton qui va déplacer l'OPTION actuellement sélectionnée dans une liste SELECT MULTIPLE en haut de cette liste. J'ai actuellement OptionTransfer.js mis en œuvre, ce qui me permet de déplacer des éléments haut et bas de la liste. Je souhaite ajouter une nouvelle fonctionDéplacer <option> en haut de la liste avec Javascript

function moveOptionTop(obj){ 
var i = obj.selectedIndex; 
if(i == 0){return;} 
var length = obj.options.length; 
for(j=length;j>0;j++){ obj.options[j] = obj.options[j-1]; //move all elements up a position to free up index 0 } 
obj.options[0] = obj.options[i+1]; //set new [0] element 
for(j=i+1;j
+0

euh, n'avez-vous pas lu l'avis de licence? L'affichage du code ici enfreint les termes de cette licence. Aussi - quelle est votre question? –

+0

Ma question est de savoir comment déplacer l'option actuellement sélectionnée en haut de la liste (c'est-à-dire mettre son index à 0). J'ai essayé le code, mais ça ne marche pas et mon algorithme semble terriblement inefficace. J'ai réédité ma question originale pour inclure le code que j'ai écrit. – Adam

Répondre

0

Utilisez les méthodes de manipulation DOM. Compte tenu:

var select = document.getElementById ("...");  // select element 
var option = select.options[select.selectedIndex] // option element 
  1. option Supprimer sélectionnée de sélection: select.removeChild (option)
  2. Réinsérer comme premier enfant: select.insertChild (option, select.firstChild)

Ou utilisez select.add() et select.remove()

http://www.w3schools.com/jsref/dom_obj_select.asp

+0

Ceci est une excellente information ... mais, j'ai un problème - il ne fonctionne pas avec IE8. Voici le code, pouvez-vous voir un problème avec cela? function moveOptionTop (el) { var sélectionné = document.getElementById (el); // sélection de l'élément var option = selected.options [selected.selectedIndex]; // élément d'option selected.removeChild (option); Selected.add (option, selected.firstChild); } – Adam

Questions connexes