如何在JavaScript中克隆Select元素的选项集合

时间:2019-02-07 17:54:54

标签: javascript html-select

我在JavaScript中有一个选择元素的options collection。我想在不使用jQuery的情况下克隆整个项目列表。该怎么做?

2 个答案:

答案 0 :(得分:1)

您可以使用 Node.cloneNode()

let collection = document.querySelectorAll('option');
let cloned = Array.from(collection).map(option => option.cloneNode(true));
const select = document.querySelector('select');
cloned.forEach(opt=>{
  select.appendChild(opt)
})
<select>
<option>Option1</option>
<option>Option2</option>
<option>Option3</option>
<option>Option4</option>
</select>

答案 1 :(得分:0)

这应该克隆并排序数据对象,如果涉及箭头方法,则将无法工作。

const clone = obj =>
  Array.isArray(obj)
    ? obj.map(item => clone(item))
    : obj instanceof Date
    ? new Date(obj.getTime())
    : obj && typeof obj === 'object'
    ? Object.getOwnPropertyNames(obj).reduce((o, prop) => {
        o[prop] = clone(obj[prop]);
        return o;
      }, {})
    : obj;