11
votes

Obtenir l'index de sélection d'option dans un optgroup avec jQuery

J'ai la sélection suivante:

var idx = $('#end :selected').prevAll().size();


0 commentaires

7 Réponses :


0
votes
var index = -1;
$('#end option').each(function(i, option) {
  if (option.selected) index = i;
});
A little ugly but I think that'd work.

0 commentaires

9
votes

Utilisez le index () code> fonction pour trouver un élément dans un élément ensemble. Construisez un ensemble de toutes les options à l'aide de $ (option «# fin d'extrémité») code>. Recherchez l'option sélectionnée à l'aide du : sélectionné code> pseudo-élément. NOTE: STRAND> Les index sont basés sur 0.

var options = $("#end option");
var idx = options.index(options.filter(":selected"));


6 commentaires

Oh c'est bon à savoir. (Oo c'est une nouvelle chose 1.4; j'ai hâte de mettre à niveau.)


@Pointy: rien n'en oblige JQuery 1.4. J'ai lié à ces documents mais aussi loin que je peux le dire, cela fonctionnera dans n'importe quelle version.


Beau! C'est parfait. Merci.


@cletuus oh ok alors; J'allais par ce qu'il dit dans les documents de l'API de JQuery pour "Index (Sélecteur)" - "Version Ajoutée: 1.4"


@Pointy: Oui c'est nouveau mais j'utilise index (élément) qui est "depuis 1.0".


@cletus, merci encore pour votre solution, c'est certainement une excellente façon de faire cela. Mais je chante mon choix à la réponse donnée par @bobince car il est beaucoup plus efficace.



19
votes

erm ... pourquoi et non pas de bonnes anciennes méthodes DOM? Pour une sélection unique:

var idx= document.getElementById('end').selectedIndex;

// or $('#end')[0].selectedIndex if you must


5 commentaires

Heh, exactement . Cripes, je vais juste aller de l'avant et supprimer la balise "JavaScript" de ce spectacle de Dom Ignorance.


Mais cela fonctionnera-t-il avec l'optgroup? Je devrais tester cela je suppose.


Oui, sélectionnéeDex sera 6 , comme indiqué dans la question.


Oui en effet ça marche. Beaucoup plus efficace que la voie JQuery! Je chante la réponse à cette solution. Merci!


@Cresent - Je viens d'ajouter la balise JavaScript. Depuis que j'ai maintenant choisi une réponse javascript, il semblait approprié de faire.



1
votes
//funcion para seleccionar con jquery por el index del select 
var text = '';
var canal = ($("#name_canal").val()).split(' ');
$('#id_empresa option').each(function(i, option) {
        text = $('#id_empresa option:eq('+i+')').text();
        if(text.toLowerCase() == canal[0].toLowerCase()){
            $('#id_empresa option:eq('+i+')').attr('selected', true);
        }
    });

0 commentaires

2
votes

La même chose de JQuery Way est également courte et simple: xxx


0 commentaires

3
votes

Vous pouvez également essayer ceci:

$('#end option:selected').prop('index')


0 commentaires

0
votes

En fonction de votre problème, retournez la valeur d'index de l'option sélectionnée. Vous pouvez essayer le code suivant, peut vous aider.

code:

code JavaScript: xxx

xxx

code HTML: xxx


xxx


0 commentaires