jQuery: XML-Filter is not applied to non-XML value

Noeden

Erfahrenes Mitglied
Hallo Leute,

ich habe gestern mal bei mir die DTD geändert. Auf XTHML 1. strict.

Wenn ich jetzt folgendes eingebe meckert er:

Code:
CurrentMenu = $(this).children().attr.("id");

Folgende Fehlermeldung kommt:
Fehler: XML filter is applied to non-XML value (function (a, b) {return d.access(this, a, b, true, d.attr);})
Quelldatei: http://localhost/index.php
Zeile: 172


Was bedeutet die Fehlermeldung, habe bei google geschaut, nur Englische Ergebnisse gefunden, und davon nur 4 gelesen, weil es für mich sehr anstrengend ist. Dort wurde aber gar nicht über die Fehlermeldung gesprochen oder den Grund dafür. Sondern nur Lösungsansätze für andere Probleme diskutiert.

Wäre nett, wenn mir jemand sagen könnte, was es zu bedeuten hat und wo ich mehr Informationen dazu finde. Damit ich es raffe ;) Und vielleicht noch nen Lösungsansatz.

DAnke :)
 
Du hast da einen Punkt zu viel (nach attr)

Javascript:
CurrentMenu = $(this).children().attr("id");
 
Mal wieder kann ich dir danken ... blöden Bäume vor dem Wald******

Und was bedeutet die Fehlermeldung an sich? Das sollte ich ja am besten auch lernen ;)


DANKE
 
Ich hab kurz einen Blick in den Firefox Code geworfen.

Hier wird die Fehlermeldung definiert:
http://mxr.mozilla.org/mozilla-central/source/js/src/js.msg#299

Und hier ist die einzige Stelle, an der sie ausgegeben wird:
http://mxr.mozilla.org/mozilla-central/source/js/src/jsxml.cpp#7603

Wenn man mal guck was dort passiert:

C++:
if (!VALUE_IS_XML(sp[-2])) {
    js_ReportValueError(cx, JSMSG_NON_XML_FILTER, -2, Valueify(sp[-2]), NULL);
    return JS_FALSE;
}


Ich kann dir nicht exakt sagen, was passiert, aber Anhand der Fehlermeldung und des Code tippe ich mal, dass der Punkt an der Stelle nicht nur ein JavaScript Syntaxfehler ist, sondern auch ein fehlerhaftes/ungültiges XML. Ich hätte auch eher "syntax error" an der Stelle des Punktes erwartet, aber scheinbar verschluckt der Parser sich bereits vorher.

Ich habe mal ein ähnliches Skript in der Konsole ausgeführt (in meinem Fall mit Rhino) und selbst dort bekomme ich

js: uncaught JavaScript runtime exception: TypeError:
[...]
is not an xml object.

anstelle eines Syntax Errors.

Also zusammenfassend scheint die Schreibweise "Ausdruck.();" zu diesem Fehler zu führen, da es in irgendeiner Spezifikation nicht als erlaubtes Token definiert ist.
 
Zurück