2012-08-24 46 views
1

我有一個包含一個選擇元件的選項的變量:而不清除對其引​​用清除選項

var allOptions = document.getElementById('ddl').options; 

當我去除選項

var selector = document.getElementById('ddl'); 
selector.options.length = 0; 

allOptions選項也被除去。

我該如何避免這種情況?

+0

不可能說出你在這裏問的問題 –

+1

你需要克隆這個對象,參見http://stackoverflow.com/questions/122102/what-is-the-most-efficient-way-to-clone-a- javascript-object – Barmar

+3

不,它是有道理的。他得到了一個_reference_到'options',後來從一個看似不同的地方改變了'options.length' ......他不明白爲什麼...... – canon

回答

2

您可以使用cloneNode創建原始select節點的確切副本。通過這種方式,你可以安全地清理下拉,而不會影響持有原來的選項變量:

var originalOptions = document.getElementById('ddl').cloneNode(true).options; 

DEMO