2010-08-14 29 views
1

我不是前端開發人員,我嘗試使用Javascript和jQuery完全動態地創建選擇框並添加其選項。嘗試使用Javascript和jQuery創建動態選擇框

我幾乎在那裏,但我有問題添加每個新的選擇到div塊(選擇的數量是不同的時間不同)。

到目前爲止,我既可以得到最後的選擇顯示下面的代碼創建(但沒有span標籤)

$('#meeting-eft-time-unit-data').append('<span>').html(se).append('</span>'); 

或者我只是得到下面的列表...

$('#meeting-eft-time-unit-data').append('<span>' + se + '</span>'); 
object HTMLSelectElement][object HTMLSelectElement][object HTMLSelectElement][object HTMLSelectElement][object HTMLSelectElement] 

下面的代碼:

$.each(event_type_time_units, 
function(index, optionData) { 
    var se = document.createElement("select"); 
    // give it a name from 'name' 
    se.name = 'eft[' + optionData.name + ']'; 
    // populate it from 'range_from .. range_to 
    for(var i=optionData.range_from; i <= optionData.range_to; i++) { 
    var option = new Option(i, i); 
    if ($.browser.msie) { 
     se.add(option); 
    } else { 
     se.add(option,null); 
    } 
    } 

    // add display name to a label in a div block 
    $('#meeting-eft-time-unit-headers').append('<span>' + optionData.display_name + '</span>'); 

    // add select to a div block 
    /** 
    This gives me the a good select but only the last one processed is displayed 
    $('#meeting-eft-time-unit-data').append('<span>').html(se).append('</span>'); 
    or 
    This gives the text as explained above 
    $('#meeting-eft-time-unit-data').append('<span>' + se + '</span>'); 
    **/ 
}); 

回答

1

嘗試:

$('#meeting-eft-time-unit-headers').append($('<span/>').append(se)); 
+0

太棒了。謝謝。這是一種捷徑,如果是這樣,是否有初學者的方式來寫它? – ants 2010-08-14 15:50:13

+0

不,這不是一條真正的捷徑(實際上可能有更短的路)。 $('')創建一個跨DOM元素 - 我從來沒有見過任何jQuery,你必須特別添加開始*和*結束標記。追加是關於附加元素,而不是文本。 – sje397 2010-08-15 00:30:48

+0

@ants - 您可能需要點擊答案旁邊的勾號 - 這有助於您的'接受'分數;) – sje397 2010-08-19 07:31:39

相關問題