JavaScript cloneNode:SELECT保留一些不需要的绑定

时间:2017-03-08 00:52:50

标签: javascript html dom clonenode

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

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

问题是:当我更改任何复制的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被“绑定”到复制的那些?

提前致谢!

1 个答案:

答案 0 :(得分:1)

感谢您的所有评论!结果证明这是一个简单的错误:我通过addEventListener()将一个事件添加到节点,该事件触发并将原始SELECT更新为复制的SELECT的相同索引。