分配选项以通过javascript选择输入

时间:2013-03-14 21:59:25

标签: javascript html select options appendchild

我的网站中有一个Select菜单,位于表格内。

<select name = "menu" id="menu" >
   <option>A</option>
   <option>B</option>
   <option>C</option>
</select> 

我正在尝试使用JavaScript函数添加另一个选择菜单,其中相同的选项位于表格下方的一行中。
我有这个:

function addRow(tableID) {
    var table = document.getElementById(tableID);
    var rowCount = table.rows.length;
    var row = table.insertRow(rowCount);

    var cell1 = row.insertCell(0);
    var element1 = document.createElement("select");
    element1.id = "id";
    cell1.appendChild(element1);
}

但我不知道在这里添加选项的位置。

我希望有人可以帮助我。

2 个答案:

答案 0 :(得分:1)

您可以通过实例化新的Option对象,然后将其传递给select元素的add方法,为select元素添加选项。

例如:

var opt = new Option("One", 1);
element1.add(opt);

答案 1 :(得分:1)

如果你想要完全复制它,你也可以使用类似的cloneNode()

function addRow(tableID) {
    var table = document.getElementById(tableID);
    var rowCount = table.rows.length;
    var row = table.insertRow(rowCount);

    var cell1 = row.insertCell(0);

    // Get a handle to the original select
    var orgSelect = document.getElementById("menu");

    // Make a clone, using true to indicate we also want to clone child nodes
    var dupSelect = orgSelect.cloneNode(true);

    // Change any attributes of the new select
    dupSelect.id = "id";

    // Append the new select
    cell1.appendChild(dupSelect);
}

DEMO - 使用cloneNode()复制selectoptions


然后,你甚至可以将这个函数调用,传递任何相关参数,类似于:

function createClone(elementId, newId, includeChildNodes){
    var original = document.getElementById(elementId);
    var duplicate = original.cloneNode(includeChildNodes);

    duplicate.id = newId;

    return duplicate;
}

// Call it like this
var clonedElement = createClone('menu', 'newMenu', true);