2016-05-15 10 views
5

Zum Beispiel, wenn ich den folgenden Code in Chrome JavaScript-Konsole ausführen,Warum gibt die JS-Konsole von Chrome ein DOM-Element anstelle eines jQuery-Objekts zurück?

$("p") 

ich folgende Ausgabe:

<p>...</p> 

Wie wir sehen können, bekommen wir ein DOM-Element eher als ein jQuery Objekt. Aber wenn ich nicht die JS-Konsole von Chrome verwende und stattdessen den Code direkt in einer Webseite zusammen mit einer console.log() verwende, erhalte ich ein jQuery-Objekt.

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

Aus dem Vorstehenden können wir feststellen, wenn Chrome JS-Konsole direkt, der Selektor ‚immer‘ gibt ein DOM-Element, anstatt ein jQuery-Objekt. Wenn ich denselben Selektorcode in der JS-Konsole des Edge-Browsers teste, erhalte ich das korrekte jQuery-Objekt. Was ist das Problem mit Chrome?

EDIT: enter image description here

+0

Gleiches mit 'jQuery (" p ")'? –

+0

Nein @ Roamer-1888. Ich bekomme, dass 'jQuery' nicht definiert ist. –

+0

Dann ist es wahrscheinlich, dass '$' nicht 'jQuery' ist. –

Antwort

4

standardmäßig $ in Chrome-Konsole ist eine spezielle Auswahlfunktion. Wenn Sie nur $ in der Konsole auf einer Seite laufen waren die nicht jQuery oder irgendetwas anderes geladen, die $ überschrieben werden soll, würde sehen Sie Folgendes:

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

Wenn jedoch die Seite des $ Wert überschrieben , dann verwendet die Konsole den Wert von der Seite. Wenn also die Seite jQuery geladen hat, erhalten Sie ein jQuery-Objekt.

Verwandte Themen