Come fare questo usando jQuery - document.getElementById ("selectlist"). Value


141

In jQuery, a cosa equivale document.getElementById("selectlist").value?

Sto cercando di ottenere il valore di un elemento dell'elenco selezionato.

Grazie.


10
Probabilmente stai ricevendo voti negativi perché le tue domande potrebbero ricevere una risposta in pochi secondi su Google o leggendo i documenti di JQuery.
zombat,

53
+1 alle tonsille per sfidare gli utenti di SO. La sua domanda è perfettamente valida, indipendentemente da quanto fosse facile / difficile da risolvere. Più traffico verso SO per ricerche future su questo argomento.
Mr. Smith

7
dai ragazzi - il voodoo di jQuery non è così facile da imparare per un vecchio come me, dev server che sono stato negli ultimi 20 anni o giù di lì - siate gentili e andate piano con noi nuovi arrivati ​​jQuery! :-)
marc_s

1
@Boekwurm Ben - potrebbe essere coraggioso, ma neanche tu puoi incolpare gli utenti SO. Alla gente generalmente piace vedere un piccolo sforzo da parte della persona che pone la domanda.
Zombat,

12
Per quanto ricordo, questa è stata la prima cosa che non ho avuto su jQuery. Penso che sia una domanda valida se si dice la verità, e segnare la verità era duro. stackoverflow.com/questions/75296/…
James Wiseman il

Risposte:



214

"Equivalente" è la parola qui

Mentre...

$('#selectlist').val();

...è equivalente a...

document.getElementById("selectlist").value

... vale la pena notare che ...

$('#selectlist')

... anche se "equivalente" non è lo stesso di ...

document.getElementById("selectlist")

... poiché il primo restituisce un oggetto jQuery, non un oggetto DOM.

Per ottenere gli oggetti DOM da jQuery, utilizzare quanto segue:

$('#selectlist').get(); //get all DOM objects in the jQuery collection
$('#selectlist').get(0); //get the DOM object in the jQuery collection at index 0
$('#selectlist')[0]; //get the DOM objects in the jQuery collection at index 0

1
forse un po 'tangenziale qui, ma questa sarebbe un'ottima informazione: c'è un modo per ottenere l'oggetto DOM da quello jQuery? modifica : ha risposto alla mia domanda in modifica.
Clayton Hughes,

4
Ho sbattuto la testa contro un muro per un'ora fino a quando ho capito che getElementById () non può essere sostituito da $ (). Grazie mille per questa risposta!
Knite

3
@knite - Sì. Vorrei avere qualcuno che me lo spiegasse la prima volta che ho usato jQuery.
James Wiseman,

1
grazie per la spiegazione successiva di come ottenere oggetti DOM in jquery :).
kailash19,

+1 Oldie but a goodie. Stavo cercando di capire perché Google Maps ha accettato un oggetto DOM ma non ha accettato il mio oggetto jQuery. Una rapida ricerca su Google mi ha portato qui, non ai documenti jQuery.
TonyG,

9

Il caos è perfetto, anche se per questo tipo di domande dovresti dare un'occhiata alla documentazione di Jquery online - è davvero abbastanza completa. La funzione che stai cercando si chiama 'selettori jquery'

Generalmente lo fai $('#ID').val()- il .after successivamente può fare un numero di cose sull'elemento che viene restituito dal selettore. Puoi anche selezionare tutti gli elementi di una determinata classe e fare qualcosa per ciascuno di essi. Consulta la documentazione per alcuni buoni esempi.


9

Può essere fatto in tre modi diversi, sebbene siano quasi tutti uguali

Modo Javascript

document.getElementById('test').value

Modo Jquery

$("#test").val()          

$("#test")[0].value             

$("#test").get(0).value

Questa è la risposta migliore Grazie!
Carter Medlin,

2

Per coloro che si chiedono se i selettori ID jQuery siano più lenti di document.getElementById, la risposta è sì, ma non a causa del preconcetto che cerca in tutto il DOM alla ricerca di un elemento. jQuery attualmente utilizza il metodo nativo. In realtà è perché jQuery utilizza prima un'espressione regolare per separare le stringhe nel selettore da controllare e, naturalmente, eseguendo il costruttore:

rquickExpr = /^(?:(<[\w\W]+>)[^>]*|#([\w-]*))$/

Considerando che l'utilizzo di un elemento DOM come argomento ritorna immediatamente con 'this'.

Così questo:

$(document.getElementById('blah')).doSomething();

Sarà sempre più veloce di questo:

$('#blah').doSomething();

0

In alcuni casi di cui non ricordo il perché, ma $('#selectlist').val()non restituisco sempre il valore dell'articolo corretto, quindi lo uso $('#selectlist option:selected').val()invece.


Forse potresti postare alcuni link che lo confermano. Sarei sorpreso comunque. Questo sarebbe un bug fondamentale in jQuery. È possibile che tu stia utilizzando una versione errata della libreria?
James Wiseman,

Avrebbe potuto essere James, penso che avrebbe potuto essere in 1.3.0, non riesco a riproporlo in 1.3.2, ma avrebbe potuto essere anche in IE6 o 7 che non ho più installato, vedrò se riesco a capire la causa originale e segnalarla qui.
Brett Ryan,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.