2011-09-20 10 views
5

Eventuali duplicati:
jQuery $(this) vs this

Sono nuovo di questo e cercando di ottenere il mio concetto di destra. Ci sono stati molti casi di utilizzo di "this" e "$(this)". Qualcuno può spiegare la differenza e in quali condizioni utilizziamo i due diversi "questo"?

+2

http://stackoverflow.com/questions/1051782/jquery-this-vs-this –

+0

Mille grazie ragazzi! È molto più chiaro ora. – user864600

risposta

13

Nelle funzioni jQuery, this si riferisce più spesso all'elemento DOM reale con cui si ha a che fare, mentre $(this) restituisce un oggetto jQuery che avvolge l'elemento.

In JavaScript, this fa sempre riferimento all'ambito corrente. Molte delle funzioni di jQuery imposteranno quell'ambito per essere l'elemento con cui stai lavorando.

Per esempio

$("#someElement").click(function() { 
    this; // the element itself 
    $(this); // a jQuery wrapper-object around the element 
}); 

Il punto è, che l'oggetto jQuery ha tutte le funzioni jQuery (come .detatch() o .prependTo() ecc), mentre l'elemento DOM è ciò che il browser fornisce. Nell'esempio sopra, l'elemento sarebbe esattamente lo stesso di quello che otterresti, se hai chiamato document.getElementById("someElement")

6

$(this) si riferisce ad un oggetto jQuery, this riferisce alla this nell'ambito corrente

2

$(this) è un oggetto jQuery. this fa riferimento al valore di this nell'ambito corrente. In genere si utilizza $(this) all'interno di una richiamata quando si desidera convertire l'elemento che ha attivato l'evento in un oggetto jQuery. Puoi fare questo praticamente su qualsiasi elemento DOM, quindi $(document.getElementById("#myElement")) è anche valido ed è un oggetto jQuery che rappresenta l'elemento DOM con id "myElement".

Problemi correlati