2010-05-10 12 views
8

Ho creato un elemento come questo:Come aggiungere un elemento a "body" usando Prototype?

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

voglio aggiungere myDiv al corpo.

ho cercato

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

Ma non funziona. Ho anche provato

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

pensando che $('body') restituisse un array. Anche quello non ha funzionato.

Come è possibile aggiungere myDiv al corpo?

Grazie.

risposta

7

$ è una scorciatoia per document.getElementById(), $$ è la funzione di prototipo più versatile. Per accedere alla (prima) elemento del corpo nel documento, utilizzare:

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

Ha funzionato. Grazie. Dal momento che la documentazione diceva '$$ (cssRule ...) -> [HTMLElement ...]', pensavo di poter dare solo nomi di classi css quando si utilizza $$ e non i nomi dei tag! Mi sento stupido: D – Senthil

+6

'$$ ('body') [0]' "funziona", ma è inefficiente e non necessario. Invece, usa '$ (document.body)' come suggerito da Pekka. – npup

+0

per renderlo completo: '$ (document.body) .insert (myStuff);' è la strada da percorrere – Sliq

15

Come su

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

?

differenza di jQuery, nel prototipo, $('body') recupera l'elemento con il idbody.

+0

Ciao, $ (body) .insert (myDiv) non funziona. Ho dimenticato qualcosa? – Senthil

+0

@Sentil scuse - avrebbe dovuto essere 'document.body'. Ad ogni modo, '$$' sembra funzionare bene quindi presumo che sia ordinato. –

1

Come Pekka ha detto, è necessario prima di estendere document.body con le estensioni DOM di Prototype per essere in grado di utilizzare il metodo() inserto di Prototype. Anche se Firefox sembra essere in qualche modo in grado di eseguire l'inserto() in ogni caso :)

per ulteriori informazioni: http://www.prototypejs.org/learn/extensions

Problemi correlati