我有一个数组,用于生成一系列选项,这些选项将填充到html select元素中。目前,这可以正常工作。我已经进行了各种基准测试,.map()
是最有效的方法。
我的问题是,如何在optgroup
元素内对选项进行分组。我已经尝试过使用嵌套的.map()
,但是它仍然使选项仍然未分组。
JS小提琴https://jsfiddle.net/57gbxrzc/
const myOptsArr = [
{
title: 'Fruit',
values: ['apple','pear','grapes','beer']
},
{
title: 'Animals',
values: ['apple','dog','mouse','cat']
},
// more here
];
let myOpts = `
<option value="">Select Option</option>
${myOptsArr.map(item => `
</optgroup label="${item.title}">${
item.values.map(itemValue => `
<option value="${itemValue}">${itemValue}</option>
`).join('')}
</optgroup>;
`).join('')}
`;
document.getElementById('mySelect').innerHTML = myOpts;
答案 0 :(得分:1)
答案 1 :(得分:0)
您遇到语法错误
</optgroup label="${item.title}">${
// change to
<optgroup ...