2010-05-10 17 views
8

he creado un elemento como este:¿Cómo agregar un elemento a 'cuerpo' usando Prototype?

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

Quiero añadir myDiv al cuerpo.

me trataron

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

Pero no está funcionando. También probé

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

pensando que $('body') devolvía una matriz. Incluso eso no funcionó.

¿Cómo puedo agregar myDiv al cuerpo?

Gracias.

Respuesta

7

$ es una abreviatura de document.getElementById(), $$ es la función de prototipo más versátil. Para acceder a la (primera) elemento del cuerpo en su documento, utilice:

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

Funcionó. Gracias. Dado que la documentación decía '$$ (cssRule ...) -> [HTMLElement ...]', ¡pensé que solo podía dar nombres de clase css cuando usaba $$ y no nombres de etiqueta! Me siento estúpido: D – Senthil

+6

'$$ ('body') [0]' "funciona", pero es ineficiente e innecesario. En su lugar, use '$ (document.body)' como sugirió Pekka. – npup

+0

para completar esto: '$ (document.body) .insert (myStuff);' es el camino a seguir – Sliq

15

¿Qué tal

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

?

diferencia de jQuery, en Prototype, $('body') Obtiene el elemento con el Identificación delbody.

+0

Hola, $ (cuerpo) .insert (myDiv) no funciona. ¿Me he perdido algo? – Senthil

+0

disculpas @Sentthil - debería haber sido 'document.body'. De todos modos, '$$' parece funcionar bien, así que supongo que está ordenado. –

1

Como dijo Pekka, primero tiene que extender document.body con extensiones DOM de Prototype para poder utilizar el método() de inserción del prototipo. Aunque Firefox parece ser de algún modo capaz de ejecutar el inserto() de todos modos :)

para más información: http://www.prototypejs.org/learn/extensions

Cuestiones relacionadas