In jQuery kann $ ('body') das Körperelement auswählen, aber $ ('body') kann genau wie $ ('irgendein Text') sein, also wie unterscheidet man?

8

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?

    
太極者無極而生 21.06.2010, 09:47
quelle

4 Antworten

8

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:

%Vor%     
Nick Craver 21.06.2010, 10:17
quelle
1

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") .

    
Sean Hogan 21.06.2010 10:15
quelle
0

Der Umgang mit Textknoten ist nicht die Stärke von JQuery. Sie können normale DOM-Methoden verwenden:

%Vor%     
RoToRa 21.06.2010 09:51
quelle
0

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.

    
Mario Menger 21.06.2010 10:02
quelle

Tags und Links