Ich dachte immer, dass jQuery nur auf DOM -Elementen operiert, das sind die Knoten, die nodeType == 1
haben.
Ich bin jedoch schockiert, dass beim Erstellen von HTML $("<p> </p><!-- comment -->")
Folgendes eintritt:
[p, Comment { data=" comment ", length=21, nodeName="#comment", more...}]
(Firebug-Formatierung)
Ich akzeptierte etwas HTML von AJAX und ein DOM-Kommentar wurde auf diese Weise erstellt und an eine Funktion übergeben, die nur für Elemente gilt: defaultView.getComputedStyle( elem, null )
Gibt es einen sauberen Ausweg?
Ich dachte immer, dass jQuery nur auf DOM-Elementen funktioniert
Nur die Selektoren wählen DOM-Elemente aus. In Ihrem Fall erstellen Sie Knoten aus der von Ihnen bereitgestellten HTML-Zeichenfolge. So analysiert jQuery die Zeichenfolge und gibt Ihnen die Knoten zurück, nach denen Sie suchen.
Um es zu reinigen, machen Sie .filter()
.
Hmm, ein interessantes Problem. Nachdem ich ein bisschen herumgespielt habe, habe ich herausgefunden, dass man sie mit .filter
mit dem Universalselektor ( *
).