Bonjour à tous.
J'ai deux petites questions. Tout d'abord, comment compare-t-on proprement 2 chaines de caractères en Javascript, afin de les classer par ordre alphabétique ? J'utilise l'opérateur ">", mais je doute que ce soit une bonne idée.
Ensuite, j'ai deux SELECT et j'aimerais faire passer des OPTION de l'un à l'autre. Pour cela, j'ai donc la fonction suivante
Code :
- function switchSelect(from, to, sort) {
- var el_from = gId(from);
- var el_to = gId(to);
- var is_moved = false;
- if (el_from.selectedIndex !== -1){
- // récupération du noeud à déplacer
- var node = el_from[el_from.selectedIndex]
- var rem_node = el_from.removeChild(node);
- // ajout du noeud à destination
- if (sort) { //on replace le noeud à sa place, alphabetiquement parlant
- var children = el_to.getElementsByTagName('option');
- if (children.length > 0) {
- for (var i = 0, len = children.length; i < len; i++) {
- if (children[i].innerHTML > rem_node.innerHTML) {
- el_to.insertBefore(rem_node, children[i]);
- is_moved = true;
- break;
- }
- }
- }
- }
- if (!is_moved) {
- el_to.appendChild(rem_node);
- }
- }
- return false;
- }
|
Je trouve mon traitement *un peu* lourd. Vous auriez des idées d'amélioration ?
Merci d'avance
Message édité par Pato el canardo le 20-04-2007 à 15:45:27