2010-01-26 34 views
9

想要使用原型將選項動態添加到Select元素。使用原型庫向javascript中的選擇元素添加選項

似乎有很多不同的方式來做到這一點在那裏,所有做options.add等...沒見過的跨瀏覽器的方式方法很多。

希望它是作爲重量輕越好。

這就是我到目前爲止所得到的。這只是附加我卡住的選項:

var oNewOption = new Element('option').value=vItem; 
oNewOption.text=vItem; 

任何想法的人?

在此先感謝!

回答

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

插入追加到選擇對象的內容,更新更新了新的選擇對象的內容。儘管如此,並不比經典方式更好。

+0

這個工作按我想做的事,但出於某種原因.insert()這樣沒有返回元素被如此更新:插入(選項).update(myLabel)沒有工作。所以將其更改爲:option.update(myLabel); select。插入(可選); 工作是一種享受。 – jamesmhaley 2010-01-26 14:37:56

+0

如果仔細觀察,_update_位於由_new_返回的對象上,而不是由_insert_返回的對象。 – Alsciende 2010-01-26 15:44:45

+0

此方法適用於IE7! – 2011-08-04 14:56:31

25

無需原型,這將是剛剛以來90年代中期在每一個主要的桌面瀏覽器,其工作方式如下由來已久的方法很簡單:

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

謝謝,但正在尋找使用原型,因爲其餘代碼正在使用原型! 將來在使用原型時不會忘記這一點! – jamesmhaley 2010-01-26 14:40:10

+8

原型只是一個庫。沒有必要將它用於一切,並且沒有任何東西阻止您將常規DOM方法與原型代碼混合在一起。 – 2010-01-26 15:50:26

+4

+1。 'select.options.add(新選項('foo','bar'))'也支持得很好。 – 2010-01-26 16:30:22

相關問題