2013-01-14 12 views
7
<select id="mySelect"> 
    <option id="sel01" value="some value">some value</option> 
    <option id="sel02" value="some other value">some other value</option> 
    <option id="sel03" value="maybe me">maybe me</option> 
    <option id="sel04" value="and another one">and another one</option> 
</select> 

Vorrei selezionare un'opzione con l'utilizzo di jQuery, ma non per valore:jQuery - Scegli un indice da elementi id

$("#mySelect").val(1); 

ma da elementi id.

Grazie per una risposta.

risposta

9

È possibile utilizzare il metodo prop.

var id = 'sel02'; 

$('#mySelect option').filter(function(){ 
    return this.id === id 
}).prop('selected', true); 

o:

$('#' + id).prop('selected', true); 

Oppure, se si desidera selezionare un'opzione basati su di esso di indice, è possibile utilizzare eq metodo:

$('#mySelect option').eq(1).prop('selected', true); 
+0

grazie mille. –

+0

@MarcinBobowski Siete i benvenuti. – undefined

1

è possibile recuperare il valore dell'elemento utilizzando il ID e utilizza il valore per jQuery val().

var elementId = 'sel01'; 
$("#mySelect").val($('#' + elementId).val()); 
+0

Amore A modo tuo, ma "indefinito" è stato il primo con il suo metodo. Grazie. –

+0

@MarcinBobowski Sta a te scegliere quale soluzione ti piace di più :) –

+0

La cosa migliore è la possibilità di imparare tutti i modi e comprenderli :) –

1

Se si desidera selezionare l'opzione:

$('#mySelect option#sel02').prop('selected',true); 

se si vuole ottenere il valore della id opzione selezionata:

$('#mySelect option#sel02').val(); 
3
var id= "sel01"; 

    $('#selectid option').each(function(){ 
     if($(this).attr('id') == id){ 
      $(this).attr('selected',true); 
     } 
    }); 
0

Ti piace questa. Basta cambiare il numero in eq (0)

$("#mySelect").val($("#mySelect").children().eq(0).val()); 
1

Prova questa sintassi,

$('select option:selected').attr('id'); 

controllo here, selezionerà l'opzione in base al valore del testo.

0

non so il contesto, ma questo ha funzionato per me quando avevo bisogno di ottenere dati da JSON e rendere l'opzione di quella casella combinata specifica selezionata:

$("#mySelect option[id='" + someVariable + "']").attr('selected', 'selected'); 
+0

Si prega di completare il codice le parentesi non corrispondono – Ram

+0

oops, mi dispiace per quello :( – AndreSites

Problemi correlati