data.json 文件
{
"name": "node-root",
"cns": [
{
"name": "node 1",
"cns": null
},
{
"name": "node 2",
"cns": [
{
"name": "node 2-1",
"cns": null
},
{
"name": "node 2-2",
"cns": [
{
"name": "node 2-2-1",
"cns": null
},
{
"name": "node 2-2-2",
"cns": null
},
{
"name": "node 2-2-3",
"cns": null
}
]
},
{
"name": "node 2-3",
"cns": null
}
]
},
{
"name": "node 3",
"cns": null
}
]
}
这是我原先的代码
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script type="text/javascript" src="http://localhost:8000/library/jquery/3.6.0/jquery.min.js"></script>
<script type="text/javascript">
function treeNodeWrite(el, array) {
$.each(array, function(key, val) {
console.log(val.name)
if (val.cns !== null) {
// 有子集
el.append(`<li>${val.name}</li>`)
el.find(`li:contains(${val.name})`).append("<ul></ul>")
el = el.find("ul").eq(0)
treeNodeWrite(el, val.cns)
} else {
el.append(`<li>${val.name}</li>`)
// 无子集
if(array[array.length - 1] === val){
el=el.parents("ul").eq(0)
treeNodeWrite(el, val.cns)
}
}
return
})
}
$(function() {
$.getJSON("data.json", function(data) {
treeNodeWrite($("ul"), data.cns);
})
})
</script>
</head>
<body>
<ul></ul>
</body>
</html>
当前的运行效果
希望呈现的效果
请问js代码应该怎么改求大佬指点?
https://jsbin.com/narayov/edit?js,output