Der Grund ist, dass wir
tun können %Vor%Also, das ist auch in Ordnung:
%Vor% aber wir können some text
nicht in body
ändern? body
ist genauso gut wie jeder Text ...
(Der obige Code fügt some text
zum div mit der ID someDiv
hinzu, also was, wenn ich das Wort body
zum div hinzufügen möchte?)
aber $ ('body') wird ein Selektor für das body-Element ... also gibt es eine Regel, die besagt, dass wir irgendeinen Text als HTML-Code verwenden können, solange es nicht der Name von HTML-Elementen ist?
Grundsätzlich gilt das nie:
%Vor% Das sollte immer entweder ein Selektor (ein Element finden) oder html (ein Element) sein, Sie können die API für $()
hier anzeigen .
Sie möchten hier eine der anderen DOM-Einfügemethoden verwenden .prepend()
in diesem Fall:
Wenn es HTML-Tags enthält, wird es als html behandelt (außer es streift Text vor dem ersten Tag und nach dem letzten). zB $("<div>some text</div>")
. Ansonsten wird es als Selektor behandelt, zB $("some text")
.
Dies liegt daran, dass jQuery Selektoren vor dem Erstellen von HTML-Snippets berücksichtigt. "body" ist ein gültiger Selektor und wird als Selektor verwendet.
Sie sollten besser die Funktion prepend verwenden, um HTML oder Text einem Knoten voran zu stellen:
%Vor%Der an prepend übergebene Wert wird nicht als Selektor verwendet und Sie könnten den Text "body" hinzufügen.
Tags und Links jquery jquery-selectors