0

我的网站上有一个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);
}

但我不知道在哪里添加选项。

我希望有人能帮助我。

4

2 回答 2

1

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

例如:

var opt = new Option("One", 1);
element1.add(opt);
于 2013-03-14T22:06:10.443 回答
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);
}

演示-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);
于 2013-03-14T22:11:37.687 回答