Ich bin das folgende JavaScript in beiden Firefox Developer Edition 38 und Internet Explorer 8 und 9.
console.log('+++++++++++++++++++++++++++++++');
console.log('jquery version = ' + $.fn.jquery);
var myHtmlString = "<!-- my comment -->" +
"<optgroup label='my label'>" +
"<option value='1'>option one</option>" +
"</optgroup>";
console.log($(myHtmlString));
console.log($(myHtmlString)[0]);
console.log($(myHtmlString)[1]);
console.log($(myHtmlString).length);
In Firefox läuft, erhalte ich:
In IE
, erhalte ich:Also, anscheinend in Firefox, ein HTML-Kommentar i s wird als ein Element dieses Objekts hinzugefügt, aber im IE ist es nicht. Warum verhält sich das so, gibt es einen Fehler oder gibt es eine andere Möglichkeit, dieses Objekt zu erstellen?
HINWEIS: Ich habe versucht $.parseHTML(myHtmlString)
, aber es tut das gleiche.
UPDATE: Diese Antwort How does jQuery treat comment elements? bietet eine mögliche Problemumgehung.
Was ist '[Object Object]' im IE Log? Bist du sicher, dass das nicht dein Kommentar ist? –
@ JonathanWood Betrachten Sie die unterschiedliche Ausgabe von $ (myHtmlString) .length – ceejayoz
Ich kann keine Referenz finden, aber in Javascript erstellte Kommentare werden in IE nicht unterstützt, wenn ich mich richtig erinnere, es sei denn, sie sind mit Dokument erstellt. createComment', und ich glaube nicht, dass jQuery das verwendet – adeneo