layui js select 中使用optgroup 标签给select 动态分组 data:{ 0:{"YY":"string","HLS":"string","YZ":"string"} 1:{"DV":"string","TYH":"string","NM":"string"} } 如何将对象中键 0 1 动态渲染到optgroup 对象中的值YY、HLS、YZ 渲染到对应的option中
时间: 2023-07-03 12:29:28 浏览: 93
您可以使用 JavaScript 中的循环语句 `for...in` 遍历对象中的每个键值对,然后根据键值对动态生成 `<optgroup>` 和 `<option>` 标签,最后将它们添加到 `<select>` 中即可。以下是一个示例代码:
```javascript
var data = {
0: {"YY": "string", "HLS": "string", "YZ": "string"},
1: {"DV": "string", "TYH": "string", "NM": "string"}
};
var select = document.createElement("select");
for (var key in data) {
var optgroup = document.createElement("optgroup");
optgroup.label = "Group " + key;
for (var option in data[key]) {
var optionElem = document.createElement("option");
optionElem.value = option;
optionElem.text = data[key][option];
optgroup.appendChild(optionElem);
}
select.appendChild(optgroup);
}
document.body.appendChild(select);
```
在上面的代码中,我们首先创建了一个空的 `<select>` 标签,然后使用 `for...in` 循环遍历了对象 `data` 中的每个键值对。在循环中,我们首先创建了一个 `<optgroup>` 标签,并将其 `label` 属性设置成当前键值对的键值。然后,又使用另一个 `for...in` 循环遍历了当前键值对的值,即一个包含多个键值对的对象。在循环中,我们为每个键值对创建了一个 `<option>` 标签,并将其 `value` 属性设置为当前键值对的键,将其 `text` 属性设置为当前键值对的值,最后将其添加到当前 `<optgroup>` 标签中。最后,我们将当前 `<optgroup>` 标签添加到 `<select>` 标签中。运行代码后,就可以看到一个带有分组和选项的下拉框了。
阅读全文