动态创建下拉菜单 - Javascript

5
我正在尝试开发一个JS函数,每当数据库中添加新记录时(来自定期检查的不同程序),它就会创建一个新行。现在我可以让函数检查数据库,将记录添加到表格中并动态显示它。第一列是用户ID,第二列是我遇到问题的地方。我想包含一个下拉菜单,但我不知道如何添加选项。我已经将下拉菜单放在第二列,但没有可供选择的选项。有人有建议吗?
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代码:

这里是发送的HTML代码:

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

11

之后

textnode2 = document.createElement("select");

你需要做类似于这样的事情

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

并且对于你想要的条目进行重复。


我该如何定义option()?我收到了一个错误,上面写着“ReferenceError: option未定义”。 - mkyong
2
没事了,我搞定了。我只需要将 new option() 改成 document.createElement("option"); 就行了。感谢你的帮助! - mkyong
2
应该是 Option() - 大写的 O - Eugen Rieck
很高兴@EugenRieck能够修复它,编辑必须至少为6个字符;) - knutole
完成了!对此感到抱歉。 - Eugen Rieck

7

我喜欢这种方法。

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接