以下是一个示例代码,用于遍历深度嵌套的对象,并生成HTML的optgroup/options:
function generateOptions(data, level = 0) {
let html = '';
// 遍历对象的键值对
for (let key in data) {
const value = data[key];
// 根据嵌套层级添加缩进
const indent = ' '.repeat(level * 4);
// 如果值是一个对象,则生成optgroup标签,并递归调用generateOptions
if (typeof value === 'object') {
html += ``;
}
// 如果值是一个字符串或数字,则生成option标签
else {
html += ``;
}
}
return html;
}
// 示例数据
const data = {
"选项1": "值1",
"选项2": {
"子选项1": "值2",
"子选项2": "值3",
},
"选项3": {
"子选项3": {
"子子选项1": "值4",
"子子选项2": "值5",
},
"子选项4": "值6",
},
};
// 生成HTML
const html = generateOptions(data);
// 将HTML插入到页面中
document.getElementById('select').innerHTML = html;
在上面的代码中,我们定义了一个名为generateOptions
的递归函数,它接收一个嵌套对象作为输入并返回生成的HTML字符串。我们在函数中遍历对象的键值对,并根据值的类型生成optgroup
或option
标签。如果值是一个对象,则递归调用generateOptions
函数以生成嵌套的optgroup
标签。如果值是一个字符串或数字,则生成一个option
标签。通过递归调用generateOptions
函数,我们可以处理任意深度的嵌套对象。
在示例中,我们定义了一个名为data
的示例数据对象,并调用generateOptions
函数生成HTML字符串。最后,我们将生成的HTML字符串插入到id为select
的元素中,这是一个select
标签,用于显示生成的optgroup
和option
标签。
下一篇:遍历深度嵌套的JSON对象