2016-05-15 7 views
5

Na przykład, kiedy uruchomić następujący kod w konsoli JavaScript Chrome,Dlaczego konsola JS przeglądarki Chrome zwraca element DOM zamiast obiektu jQuery?

$("p") 

pojawia się następujący komunikat:

<p>...</p> 

Jak widzimy, mamy raczej elementu DOM niż jQuery obiekt. Kiedy jednak nie używam konsoli JS Chrome i raczej używam kodu bezpośrednio na stronie internetowej wraz z niektórymi console.log(), otrzymuję obiekt jQuery.

[object Object]{0: HTMLParagraphElement {...}, 1: HTMLParagraphElement {...}, ... 

z powyższego, możemy stwierdzić, że podczas korzystania z konsoli bezpośrednio JS Chrome, selektor „zawsze” zwraca element DOM zamiast obiektu jQuery. Kiedy testuję ten sam fragment kodu selektora w konsoli JS przeglądarki Edge, otrzymuję poprawny obiekt jQuery. Na czym polega problem z Chrome?

EDIT: enter image description here

+0

To samo z 'jQuery (" p ")'? –

+0

Nie @ Roamer-1888. Rozumiem, że "jQuery" nie jest zdefiniowany. –

+0

Wtedy wydaje się prawdopodobne, że '$' nie jest 'jQuery'. –

Odpowiedz

4

Domyślnie $ w konsoli Chrome to specjalna funkcja wybierak. Jeśli było uruchomić tylko $ w konsoli na stronie, która nie załadowanego jQuery lub cokolwiek innego, który nadpisywania $, by zobaczyć, co następuje:

function $(selector, [startNode]) { [Command Line API] } 

Jeśli jednak strona została nadpisana wartość $ , wtedy konsola użyje wartości ze strony. Więc jeśli strona załadowała jQuery, otrzymasz obiekt jQuery.