/ / Usa un selettore jQuery come variabile: javascript, jquery, variabili

Utilizza un selettore jQuery come variabile: javascript, jquery, variabili

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 № 1

document.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>

Violino


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;