2012-02-14 109 views
2

我試圖開發一個JS函數,每次將新記錄添加到數據庫(從定期檢查的其他程序中)創建一個新行。現在我可以得到函數來檢查數據庫,將記錄添加到表中並動態顯示它。第一列是用戶標識,第二列是我遇到問題的地方。我想包括一個下拉菜單,但我不確定如何添加選項。我在第二列中有下拉列表,但沒有可供選擇的選項。任何人都有一些建議?動態創建下拉列表 - JavaScript

function addRow(tableID, user) { 

var table = document.getElementById(tableID); 

var rowCount = table.rows.length; 
var row = table.insertRow(rowCount); 

var colCount = table.rows[0].cells.length; 

for(var i=0; i<colCount; i++) { 
    var opt = document.createElement("option"); 

    tabbody=document.getElementsByTagName("tbody").item(2); 
    cell1 = document.createElement("TD"); 
    cell2 = document.createElement("TD"); 
    textnode1=document.createTextNode(user); 
    //textnode2=document.createTextNode("morecontent"); 
    textnode2=document.createElement("select"); 
    textnode2.setAttribute('id', 'focus'); 
    textnode2.options.add(opt); 
    cell1.appendChild(textnode1); 
    cell2.appendChild(textnode2); 
    row.appendChild(cell1); 
    row.appendChild(cell2); 
    tabbody.appendChild(row); 

    var newcell = row.insertCell(i); 

    newcell.innerHTML = table.rows[0].cells[i].innerHTML; 

這是它被髮送到HTML:

 <th colspan="2">Pending Alerts</th> 
    <tr> 
     <th>User</th> 
     <th>Action</th> 
     </tr> 
    <tbody> 
    </tbody> 

回答

5

textnode2 = document.createElement("select"); 

你需要做的是這樣

var op = new Option(); 
op.value = 1; 
op.text = "First entry"; 
textnode2.options.add(op);  

,並重復你想要的條目。

+0

如何定義option()?我得到一個錯誤,說「ReferenceError:選項未定義」 – mkyong 2012-02-14 11:44:37

+1

沒關係。我知道了。我不得不將'new option()'改成'document.createElement(「option」);'謝謝你的幫助! – mkyong 2012-02-14 11:47:01

+1

本應該是'Option()' - 大寫字母O – 2012-02-14 11:49:44

3

我喜歡這種方法。

var dropdown = document.getElementById("MyDropDownList"); 
var opt = document.createElement("option"); 
opt.text = 'something'; 
opt.value = 'somethings value'; 
dropdown.options.add(opt);