Qual è il modo migliore per ottenere l'elemento DOM sottostante per ID in jQuery?
Domanda
Questo suona come una domanda molto semplice. Diciamo che ho il seguente elemento del modulo
<select id="mySelect">
...
Utilizzando jQuery, diciamo che voglio farlo per ID in modo da poter accedere direttamente uno dei suoi attributi come selectedIndex.
I non pensare posso usare
var selectedIndex = $("#mySelect").selectedIndex;
perché il selettore # restituisce un array di elementi. Se voglio accedere in realtà l'elemento DOM di selezione, allora devo chiamare
var selectedIndex = $("#mySelect").get(0).selectedIndex;
È corretto? C'è un selettore che mi permette di arrivare direttamente all'elemento DOM senza dover fare una "chiamata in più" per ottenere (0)?
Lo chiedo perché vengo da Prototype dove posso solo dire:
var selectedIndex = $('mySelect').selectedIndex;
Soluzione
Ci sono jQuery modi per ottenere il valore del <select>
che non richiedono di accedere al vero e proprio elemento DOM. In particolare, si può semplicemente fare questo per ottenere il valore dell'opzione selezionata:
$('#mySelect').val();
A volte, tuttavia, si vuole accedere ad un particolare attributo DOM per qualsiasi motivo.
Mentre la sintassi .get(0)
che hai fornito è corretto, è anche possibile senza la chiamata di funzione:
$("#mySelect")[0].selectedIndex;
Una raccolta jQuery si comporta come un oggetto matrice simile ed espone gli elementi DOM reale attraverso esso.
Altri suggerimenti
$("#mySelect").val()
farà il trucco.
$("#mySelect option:selected").val()