2010-01-26 22 views
9

Prototip kullanarak bir Select öğesine dinamik olarak bir seçenek eklemek ister.Prototip kitaplığı kullanarak javascript ile bir Öğe Seçeneği Ekleme

Orada yapmak için birçok farklı yol var gibi görünüyor, hepsi options.add ile yapmak için ... Çapraz tarayıcı yolu yolunda pek görülmedi.

Mümkün olduğunca hafif olmasını istiyorsanız.

Şimdiye kadar elde ettiğim budur. Sadece takılı olduğum seçeneklerin eklenmesi:

Herhangi bir fikir var mı?

Şimdiden teşekkürler!

// Assuming a select element stored in a variable called 'select' 
select.options[select.options.length] = new Option("Option text", "optionValue"); 

cevap

11
select.insert(new Element('option', {value: myValue}).update(myLabel)); 

insert ekler:

+0

Bazı nedenlerden dolayı .insert() öğenin dönülecek şekilde dönmemesine rağmen ne yapmak istediğime göre çalıştım: insert (option) .update (myLabel) çalışmadı. Bu yüzden onu değiştirdi: option.update (myLabel);(Isteğe bağlı) eklemek; İş bir zevktir. – jamesmhaley

+0

Eğer yakından bakarsanız, _update_ _insert_ tarafından döndürülen değil, _new_ tarafından döndürülen nesnenin üzerindedir. – Alsciende

+0

Bu yöntem IE7'de çalışır! –

25

Prototip gerek yok, bu 1990'ların ortalarından beri her büyük masaüstü tarayıcısında çalışan şu eskiden kalma yöntemle gibi kolay olacak içeriği için nesnesini seçin, güncelleştirmesi yeni seçenek nesnesinin içeriğini güncelleştirir.

Yine de klasik yoldan daha iyi değil.

+0

Teşekkür ederim ama prototip kodun geri kalanı kullandığı için prototip kullanmayı düşünüyordu! Prototip kullanıldığında, gelecekte bunu akılda tutacak bir gereklilik değildir! – jamesmhaley

+8

Prototip sadece bir kütüphanedir. Her şey için kullanmanıza gerek yoktur ve Prototype kodunuzda normal DOM yöntemlerini karıştırmaktan vazgeçen hiçbir şey yoktur. –

+4

+1. select.options.add (yeni Seçenek ('foo', 'bar')) 'da oldukça iyi destekleniyor. –

İlgili konular