Qual è il modo migliore per ottenere l'elemento DOM sottostante per ID in jQuery?

StackOverflow https://stackoverflow.com/questions/989865

  •  13-09-2019
  •  | 
  •  

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;
È stato utile?

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()
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top