2016-08-04 28 views
0

Jetzt lerne ich Backbone und Marionette, ich lese ein Tutorial und ich habe einen Code gefunden, den ich nicht verstanden habe. Hier ist der Code:

$('element',this.el)[0] 

Ich weiß, jQuery wenig. Ich weiß this Schlüsselwort, ich kenne das Schlüsselwort $('element'), aber verstehe diesen Code nicht, bitte teilen Sie mir das alles mit.

+0

Es findet das 'Element' in' this.el' und gibt das DOMElement aus dem resultierenden jQuery-Objekt zurück. –

+0

können Sie den vollständigen Code –

+1

http://api.jquery.com/jquery/#jQuery-selector-context –

Antwort

5

Diese $('element',this.el) sagen wählt alle <element> innerhalb this.el enthalten. this.el muss ein anderes "Objekt" sein, aber was es ist, hängt davon ab, was es höher baut. Ich behandle das genauer in this answer to a similar question.


Die [0] auspackt einfach die jQuery-Objekt ein Vanille-DOM-Objekt zurück. Also:

$('element',this.el).first(); //works 
$('element',this.el)[0].first(); //will error 

Der zweite Fehler becuase es ist nicht ein jQuery-Objekt mehr, so dass es nicht in den jquery Funktionen gewickelt ist.

+0

So kann ich sagen, dass Code "wählen Sie das erste Element, das Name' Element' in 'This.el' Element hat "? –

+0

fast: "wähle das erste Element aus, welches ** vom Typ ** Element in dieser.el ** und entpacke dann das jquery Objekt aus der Umgebung **" – Liam

+0

Ich verstehe nicht ein bisschen was du redest, kannst du füge ein einfaches Diagrammbild oder etwas ähnliches hinzu, damit ich schnell verstehe, was du sagst? –

0

Dies ist die jquery selector context Syntax:

'element' einen Wähler und this.el ist ein Kontext und unter Verwendung von Dirac-Notation das erste Element [0] zu erhalten, die auch jquery Element JavaScript-Objekt konvertiert.

Alternativ können Sie diese anstelle von jQuery-Selektor Kontext Syntax:

$(this.el).find('element')[0] // hope you understand this syntax 
2
  • Im Backbone Zusammenhang wird der Code wahrscheinlich innerhalb a view und this.el bezieht sich auf die view's element
  • $('element',this.el) finden die element Knoten innerhalb des Schutzbereichs definiert durch this.el
  • $('element',this.el)[0] bezieht sich auf den ersten element Knoten gefunden

Beachten Sie, dass Sie in einer Backbone-Ansicht

vereinfachen können
this.$('element')[0]