2010-06-21 1 views
8

Der Grund dafür ist, dass wir

$('<div>some text</div>').prependTo('#someDiv') 

so tun kann, ist dies auch in Ordnung zu tun:

$('some text').prependTo('#someDiv') 

aber wir können nicht some text-body ändern? body ist nur so gut wie jeder Text ...

(der obige Code some text auf die div mit id someDiv, so ist das Hinzufügen was ist, wenn ich das Wort body zum div hinzufügen?)

aber $ ('body') wird zum Selektor für das body-Element ... also gibt es eine Regel, die besagt, dass wir jeden Text als HTML-Code verwenden können, solange es nicht der Name von HTML-Elementen ist?

+0

Sie bitte ein wenig mehr erarbeiten können? – Sarfraz

Antwort

8

Im Grunde ist dies nie gültig:

$('generic text here, *not* a selector or HTML'); 

Das sollte immer entweder ein Selektor (ein Element zu finden) oder HTML (Erstellen Element (e)), you can view the API for $() here.

Sie möchten hier eines der anderen DOM Insertion methods verwenden, .prepend() in diesem Fall:

$('#someDiv').prepend('any text or html here is valid, <b>Hey look bold</b>.'); 
0

Umgang mit Textknoten ist nicht JQuery's starke Klage. Sie können normale DOM-Methoden verwenden:

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 würden besser sein, die prepend Funktion der Verwendung von HTML oder Text zu einem Knoten vorangestellt wird:

$('#someDiv').prepend('some text'); 

Der Wert übergeben wird vorangestellt wird kein Selektor verwendet und man konnte den Text „Körper“ hinzufügen.

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