2011-07-15 15 views
13

sono in grado di mantenere selezionare il primo e l'ultimo valore di una casella di selezione

$("#selbox").val($("#sel_selbox option:last").val()); 

$("#selbox").val($("#selbox option:last").val()); 

Come posso mantenere selezionato il secondo valore?

$("#selbox").val($("#selbox option:second").val()); 

Questo sta dando errore. C'è qualche opzione per mantenere la selezione dando un indice?

+4

'$ ('# opzione selbox: eq (1)')' http://jqapi.com/#p=eq-selector – sod

+0

@sod yu dovrebbe postare questa risposta man. Grazie Sod di Zod .. :-) – zod

+0

Questo è il motivo per cui lo chiedo a Meta, anche i buoni commenti dovrebbero essere discussi da qualche parte su http://meta.stackexchange.com/questions/97052/is-our-great-comments-counted-somewhere-in -so-nel-nostro-profilo e la gente non ha dato alcuna grande risposta !! :-( – zod

risposta

38

Sì, si desidera il selettore speciale jQuery eq().

$("#selbox").val($("#selbox option:eq(1)").val()); 
0

Un altro modo di scriverlo.

$("#selbox").val($("#selbox option").eq(1).val()); 
12

Il selettore di fare questo è :eq(), as already suggested.

Tuttavia, questo non è il metodo migliore. Poiché eq è un'estensione specifica non specifica di jQuery, l'intera query deve essere analizzata dal motore di selezione di jQuery. Nessuna selezione viene gestita dalle funzionalità di selezione nativa del browser. Ciò significa che la selezione sarà molto più lenta.

Se si effettua una selezione semplice e quindi si abbassa con i metodi jQuery, si ottengono prestazioni molto migliori, poiché la funzione di selezione nativa del browser (chiamata querySelectorAll) gestirà tutto ciò che è in grado di fornire un grande incremento di velocità .

$('#selbox option').eq(1).val(); 
$('#selbox option').last().val(); 
$('#selbox option').first().val();  // same as .eq(0).val(); 

See:

0

o come questo:

$('#selbox').find('option').eq(1).val(); 
+0

Questo non ha funzionato per me. – ChickenFeet

0

Avevo bisogno di nascondere tutte tranne le prime 2 opzioni e ho usato questo.

$("#DDLId").find('option:not(:first)').not(":first").map(function() 
{ 
    return $(this).parent('span').length == 0 ? this : null; 
}).wrap('<span>').hide(); 

NB questo usa la "nascondere con una campata" trucco piuttosto che semplicemente usando hide() come IE non nasconderà direttamente opzioni.

utilizzare .unwrap().show() per rendere nuovamente le opzioni nascoste.

Problemi correlati