Sto creando una variabile che memorizza un ID elementi nella variabile. Potrei scriverlo così:
var webappData = document.getElementById("web-app-data");
Se volessi fare lo stesso usando jQuery penso che lo scriverei così:
var webappData = $("#web-app-data");
Tuttavia, quando provo che non funziona. (Lo script genera un errore perché la variabile non sta selezionando il div
con quell'Id.)
Come dovrei usare jQuery per selezionare un elemento e memorizzarlo in una variabile?
risposte:
2 per risposta № 1document.getElementById("web-app-data")
non è lo stesso di $("#web-app-data")
. Il successivo restituisce l'oggetto jQuery, che è una specie di array di HTMLElement
oggetti (solo uno nel tuo caso).
Se vuoi ottenere HTMLElement
, uso $("#web-app-data")[0]
. Dai un'occhiata:
document.getElementById("web-app-data") === $("#web-app-data")[0]; // true
1 per risposta № 2
Va bene .. Forse qualcos'altro è sbagliato nel tuo codice ..
Esempio:
<div id="web-app-data">
Hello
</div>
<script type="text/javascript">
var webappData = $("#web-app-data");
alert(webappData.text()); // Hello
</script>
0 per risposta № 3
Il codice sopra dovrebbe funzionare bene.Il tuo problema potrebbe essere che jQuery non trova alcun elemento corrispondente dal DOM poiché l'elemento è stato rimosso o non è stato ancora caricato lì. Se ci provi
console.log($("#web-app-data"));
quella variabile, puoi controllare se jQuery ha effettivamente trovato qualcosa. L'oggetto jQuery dovrebbe avere una lunghezza di (almeno) uno se l'elemento corrispondente è effettivamente in DOM atm.
0 per risposta № 4
Funzionerà e lo utilizzerai proprio come se fosse il selettore JQuery completo.
var elm = $("#webappData");
if (elm.hasClass("someClass")) elm.removeClass("someClass");
return;