2010-07-29 15 views
7

Jak działa znacznik jQuery $(this)? Wiem, jak z niego korzystać, ale w jaki sposób jQuery wie, który element jest "aktywny"? A jaki jest oryginalny znacznik JavaScriptu do pobrania bieżącego elementu, czy tylko jQuery?

+7

@qor Jesteś połączony z bieżącym pytaniem, więc tak –

+0

Miło widzieć SO chroni zamykanie pytania z powodu bycia duplikatem samego siebie - niektóre witryny nie będą;) – Konerak

+0

możliwy duplikat [Dlaczego muszę użyć $ (this)] (http://stackoverflow.com/questions/3316113/why-do-i-have-to-use-this) – jAndy

Odpowiedz

7

this jest prostym JavaScript (DOM) obiektu, $(this) zamieni obiektu do obiektu jQuery.

jQuery nie musi „wiedzieć”, co this to, że nie traktuje tego w sposób szczególny, żadna inna niż myHeaderDiv w

var myHeaderDiv = document.getElementById('header'); 
$myHeaderDiv = $(myheaderDiv); //just a variable transformed into jQuery object, as with this. 
4

this jest zależne od kontekstu w jQuery (i JavaScript ogólnie). Zwykle reprezentuje bieżący element DOM w procedurze obsługi zdarzeń, ale nie jest obiektem jQuery.

$(this) to obiekt jQuery zawierający bieżący element DOM.

3

Wyrażenie $(this) jest zwykłym wywołaniem funkcji JavaScript, równoważnym jQuery(this). Wartość this jest zdefiniowana przez samą JavaScript i nie jest wynalazkiem jQuery.