You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于现有jQuery代码,如何从JSON生成带链接的嵌套列表?

解决方案:实现带链接的嵌套分类列表

直接给你修改好的代码,能实现你要的效果——顶层显示分类名称,子级列表生成对应url的可点击链接:

修改后的JavaScript代码

$(document).ready(function () {
    var $ul = $('<ul></ul>');
    var usefullinks = [
        {
            "category": "Category 2",
            "links": [
                {
                    "url": "https://example.org",
                    "text": "Some Link"
                }
            ]
        },
        {
            "category": "Test",
            "links": [
                {
                    "url": "http://google.net",
                    "text": "Link 1"
                },
                {
                    "url": "https://example.com",
                    "text": "Link 2"
                }
            ]
        }
    ];
    getList(usefullinks, $ul);
    $ul.appendTo(".main");
});

function getList(item, $list) {
    if($.isArray(item)){
        $.each(item, function (key, value) {
            getList(value, $list);
        });
        return;
    }

    if (item) {
        var $li = $('<li/>');
        // 处理分类项(带category字段)
        if (item.category) {
            // 这里改成纯文本,要是需要顶层带链接,就换回原有的a标签写法
            $li.text(item.category);
            // 如果要顶层带链接,用下面这行替换上面的text:
            // $li.append($('<a href="#">' + item.category + '</a>'));
        }
        // 处理链接项(带url和text字段)
        else if (item.url && item.text) {
            $li.append($('<a href="' + item.url + '">' + item.text + '</a>'));
        }
        // 递归处理子链接列表
        if (item.links && item.links.length) {
            var $sublist = $('<ul/>');
            getList(item.links, $sublist);
            $li.append($sublist);
        }
        $list.append($li)
    }
}

HTML代码(修正了原代码的转义字符)

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="main">
</div>

关键改动说明

  1. 区分分类与链接项:在getList函数里新增判断逻辑,当item包含url和text时,生成带真实跳转地址的链接标签,不再走分类的处理逻辑
  2. 顶层分类灵活设置:默认把顶层分类设为纯文本,若需要顶层也带链接,注释掉$li.text(item.category),启用下方的a标签代码即可
  3. 修正转义字符:原代码里的&lt;/&gt;是HTML转义符,直接用<>写jQuery元素更直观易读

内容的提问来源于stack exchange,提问作者webmonkey237

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 11:02:49