0

所以,我有一个包含输入元素的简单表,我需要向它动态添加新行。

其中一个单元包含一个 SELECT 元素和一个使用 cloneNode() 复制的选项列表。

问题是:当我更改任何复制的 SELECT 元素时,原始 SELECT 的索引也会更改为相同的值,就像克隆过程留下了某种“绑定”一样。

我的桌子看起来像这样:

<table>
    <tr>
        <th>Header</th>
    </tr>
    <tr>
        <td>
            <select>
                <option>Options</option>
            </select>
        </td>
    </tr>
</table>

克隆例程相对复杂,因为我必须更改单元格 ID、元素名称和其他内容,但归结为以下内容:

var table = document.querySelector('#table');
var rows = table.querySelectorAll('tr');

for (var x = 0; x < 5; x++)
{

    row = rows[1].cloneNode(true);

    // Changes everything that needs to be changed

    table.appendChild(row);

}

有谁知道是什么导致原始 SELECT 被“绑定”到复制的?

提前致谢!

4

1 回答 1

1

谢谢大家的意见!结果证明是一个简单的错误:我通过 addEventListener() 添加了一个事件到节点,该事件正在触发并将原始 SELECT 更新为复制的相同索引。

于 2017-03-08T03:05:05.057 回答