2010-05-10 37 views
8

Tôi đã tạo ra một yếu tố như thế này:Cách thêm phần tử vào 'body' bằng Prototype?

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

Tôi muốn thêm myDiv với cơ thể.

tôi đã cố gắng

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

Nhưng nó không phải đang làm việc. Tôi cũng đã thử

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

nghĩ rằng $('body') đã trả về một mảng. Ngay cả điều đó cũng không hiệu quả.

Tôi làm cách nào để thêm myDiv vào phần thân?

Cảm ơn.

Trả lời

7

$ là viết tắt của document.getElementById(), $$ là hàm nguyên mẫu linh hoạt hơn. Để truy cập vào (đầu tiên) yếu tố cơ thể trong tài liệu của bạn, sử dụng:

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

Nó làm việc. Cảm ơn. Kể từ khi tài liệu nói '$$ (cssRule ...) -> [HTMLElement ...]', tôi nghĩ rằng tôi chỉ có thể cung cấp tên lớp css khi sử dụng $$ và không phải tên thẻ! Tôi cảm thấy ngu ngốc: D – Senthil

+6

'$$ ('body') [0]' "hoạt động", nhưng không hiệu quả và không cần thiết. Thay vào đó, hãy sử dụng '$ (document.body)' như Pekka đề xuất. – npup

+0

để thực hiện việc này: '$ (document.body) .insert (myStuff);' là cách để đi – Sliq

15

Làm thế nào về

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

?

Khác với jQuery, trong Prototype, $('body') tìm nạp phần tử với idbody.

+0

Xin chào, $ (body) .insert (myDiv) không hoạt động. Tôi đã bỏ lỡ một cái gì đó? – Senthil

+0

@ Thứ tư xin lỗi - nó phải là 'document.body'. Dù sao, '$$' dường như hoạt động tốt nên tôi cho rằng nó được sắp xếp. –

1

Như Pekka nói, trước tiên bạn cần phải mở rộng document.body với phần mở rộng DOM Prototype của để có thể sử dụng chèn Prototype của phương pháp(). Mặc dù Firefox dường như bằng cách nào đó có thể thực hiện chèn() anyway :)

để biết thêm thông tin: http://www.prototypejs.org/learn/extensions

Các vấn đề liên quan