2016-11-10 3 views
-3

Ich weiß nicht, was mit meinem Chrome-Browser passiert, aber plötzlich ist das Verhalten, $('div#my') in der Konsole zu tun, völlig anders als vorher. Einmal habe ich das erlebt, aber später hat es sich irgendwie erholt, also weiß ich nicht, wie ich es reproduzieren soll, und heute ist es wieder passiert.Warum gibt jQuery Selector manchmal etwas wie "a.fn.init" zurück?

Bitte sehen Sie sich das Video an: http://peaceevertvimg.org/jq.php.

Im Video I $('div#my') in zwei verschiedenen Browser zu tun:

der erste Browser nicht Chrom ist, aber ich glaube, es ist das Kernel-Chrom verwendet, um sein Verhalten, was ich erwarte, und weil mein derzeitiges Chrom nicht funktioniert als erwartet, also muss ich es verwenden, um meine Erwartung zu demonstrieren: Wenn Sie tun $('div#my) `Sie sehen direkt die HTML-TAG, und Sie können leicht den HTML-Inhalt des Tags sehen, die in diesem Fall" etwas "ist.

Im Gegensatz dazu ist das Ergebnis in meinem Chrom-Browser anders, wenn ich $('div#my') sehe ich ein Objekt (n.fn.init), und ich kann nicht sofort das "etwas" sehen, was natürlich sehr unbequem ist. Aber davor bin ich mir ziemlich sicher, dass es nicht so war, das Verhalten war genau so im ersten Browser.

Die einfache Webseite in diesem Video ist http://peaceevertvimg.org/jquery.php, können Sie selbst in Chrome Browser testen gehen. Und ich bin mir ziemlich sicher, dass die meisten von euch das Ergebnis nicht sehen werden, wie es in meinem Video gezeigt wird. Was ist mit meinen Chrom? (Ich habe alle Erweiterungen deaktiviert und es auf die neueste Version aktualisiert)

+0

Wenn Sie 'a.fn.init' sehen, bedeutet dies, dass nichts gefunden wurde, das dem Selektor entspricht. –

+0

Nein. Es ist nicht. Sehen Sie sich dieses Bild an: http://peaceevertvimg.org/temp/s.png – shenkwen

+1

Sie können diese ähnliche [Frage] (http://stackoverflow.com/questions/4754560/help-understanding-jquerys-jquery) überprüfen -fn-init-warum-ist-init-in-fn). –

Antwort

1

Wenn Sie offen Chrome-Entwickler-Tools-Konsole für eine gegebene Seite und einfach $ rufen Sie sollten

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

wenn Sie die gleiche Sache auf einer Seite zu tun, das hat jQuery geladen, werden Sie

function (a,b){return new n.fn.init(a,b)} 

siehe Auswertung $($0) auf dem Kontext der Seite der oben genannten Informationen gegeben abhängen wird. Sie erhalten entweder eine Elementreferenz oder ein jQuery-Objekt.

+0

Ich habe das Video neu gemacht und die Frage neu geschrieben, hoffentlich ist es jetzt weniger verwirrend. – shenkwen

Verwandte Themen