2017-03-08 48 views
0

所以,我有一個包含輸入元素的簡單表格,我需要動態地向它添加新行。JavaScript cloneNode:SELECT保留一些不受歡迎的綁定

其中一個單元格包含一個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

你如何更新值? – dandavis

+0

問題可能不在克隆操作中,但以您更新索引的方式進行 –

+1

@TrinhHoangNhu:關於它沒有「可能」,cloneNode()不鏈接任何內容;) – dandavis

回答

1

謝謝你的所有意見!事實證明這是一個簡單的錯誤:我通過addEventListener()添加了一個事件,該事件觸發並將原始SELECT更新爲複製的同一個索引。