2010-05-10 9 views
8

Ich habe ein Element wie folgt erstellt:Wie fügt man 'Body' mit Prototype ein Element hinzu?

var myDiv = new Element('div'); 
myDiv.update('Hello!'); 

I myDiv Körper hinzufügen möchten.

Ich versuchte

$('body').insert(myDiv); 

Aber es funktioniert nicht. Ich versuchte auch

$('body')[0].insert(myDiv); 

denken, dass $('body') ein Array zurückgab. Selbst das hat nicht funktioniert.

Wie kann ich myDiv zu Körper hinzufügen?

Danke.

Antwort

7

$ ist eine Abkürzung für document.getElementById(), $$ ist die vielseitigere Prototyp-Funktion. Für den Zugriff auf den (ersten) Körperelement in Ihrem Dokument verwenden:

$$('body')[0].insert(myDiv); 
+0

Es funktioniert. Vielen Dank. Da in der Dokumentation '$$ (cssRule ...) -> [HTMLElement ...]' steht, dachte ich, ich könnte CSS-Klassennamen nur geben, wenn ich $$ benutze und keine Tag-Namen! Ich fühle mich dumm: D – Senthil

+6

'$$ ('Körper') [0]' "funktioniert", ist aber ineffizient und unnötig. Verwenden Sie stattdessen '$ (document.body)', wie Pekka vorgeschlagen hat. – npup

+0

, um dies zu vervollständigen: '$ (document.body) .insert (myStuff);' ist der Weg zu gehen – Sliq

15

Wie wäre es

$(document.body).insert(myDiv); 

?

Unterschiedlich von jQuery, in Prototype holt $('body') das Element mit der IDbody.

+0

Hallo, $ (body) .insert (myDiv) funktioniert nicht. Habe ich etwas verpasst? – Senthil

+0

@Senthil Entschuldigung - es hätte 'document.body' sein sollen. Anyway, '$$' scheint gut zu funktionieren, also nehme ich an, es ist sortiert. –

1

Wie Pekka sagte, zunächst mit Prototype DOM Erweiterungen erweitern müssen document.body in der Lage sein Prototyp des Einsatzes zu verwenden() -Methode. Obwohl Firefox scheint irgendwie in der Lage sein, den Einsatz() sowieso ausführen :)

für weitere Informationen: http://www.prototypejs.org/learn/extensions

Verwandte Themen