所以,我有一个包含输入元素的简单表,我需要动态添加新行。
其中一个单元格包含一个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被“绑定”到复制的那些?
提前致谢!
答案 0 :(得分:1)
感谢您的所有评论!结果证明这是一个简单的错误:我通过addEventListener()将一个事件添加到节点,该事件触发并将原始SELECT更新为复制的SELECT的相同索引。