2014-04-22 10 views
5
<select id="comboBox"> 
    <option id="1">One</option> 
    <option id="2">Two</option> 
    <option id="3">Three</option> 
    <option id="4">Four</option> 
</select> 

Voglio selezionare l'opzione con ID 3. C'è un modo come farlo senza ciclo? Mi aspetto qualcosa di simileCome impostare l'opzione selezionata dell'elemento select tramite il relativo ID?

$("#comboBox").val("3"); 

ma con ID invece di valore. (Così mi riferisco ad accedere a tale opzione come membro del comboBox, non attraverso il selettore come document.getElementById('3');)

+0

'document.getElementById ('3') ; '? – Matt

+0

Intendevo impostarlo in qualche modo attraverso l'elemento 'comboBox'. – juice

+0

Riforma la domanda in modo che spieghi che cosa esattamente vuoi che succeda. –

risposta

10
<script type="text/javascript"> 
    document.getElementById("3").selected=true; 
</script> 

o

<script type="text/javascript"> 
    document.getElementById("comboBox").options[2].selected=true; 
</script> 

o

<script type="text/javascript"> 
    document.getElementById("comboBox").selectedIndex=2; 
</script> 

o

<script type="text/javascript"> 
    document.getElementById("comboBox").options.namedItem("3").selected=true; 
</script> 

Per l'ultimo vedere https://developer.mozilla.org/en/docs/Web/API/HTMLSelectElement#namedItem() e http://www.w3schools.com/jsref/coll_select_options.asp

Si potrebbe saltare il riferimento alle opzioni per la più breve document.getElementById("comboBox").namedItem("3").selected=true;

2

provare document.querySelector('option[id="3"]').setAttribute('selected', true) o document.querySelector('#comboBox > option[id="3"]').selected=true

JsFiddle

0

Questo ha funzionato per me:

$("#2").attr({"selected": true}); 

Nota Sto usando il selettore JQuery e la funzione .attr.

0

si può provare questo, se il vostro id è nello stesso ordine

document.getElementById("comboBox").selectedIndex = 2; 

Demo

0

selectedIndex è una struttura di HTMLSelectElement, è possibile ottenere il suo indice utilizzando la proprietà index, in modo da poter fare la seguente:

document.getElementById("comboBox").selectedIndex = document.getElementById('3').index; 

aggiornato:Demo

Aggiornamento opzione sul pulsante Click: opzioneNew Demo

Aggiornamento sul pulsante Click in ordine decrescente:Another Demo

+0

Questo non funziona, davvero. Cosa è 'document.getElementById ('3'). Index'? – KooiInc

+0

Dovrebbe funzionare e ** Demo ** funziona anche. 'document.getElementById ('3'). index' per ottenere l'indice di' option' con 3 'id'.Ho aggiornato la mia risposta anche – Manwal

+0

Sono stato corretto. Supponiamo che in una versione precedente lo scripting del fiddle fosse nell'intestazione html. 'document.getElementById ('3'). index' è una proprietà esistente, presumibilmente perché è una' opzione', interessante. – KooiInc

Problemi correlati