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

如何为JSON响应动态生成的第一个li标签添加active类?

实现方案

完全可以通过调整现有代码实现需求,以下是两种常用的实现思路:

方法1:循环内判断首次渲染

新增一个标记变量判断是否是第一次循环,首次循环时给li加上active类即可,修改后的代码如下:

// 新增首次循环标记
let isFirst = true;
for (var key in jsonData) {
    if (jsonData.hasOwnProperty(key)) {
        console.log(key + " -> " + jsonData[key].textName);
        // 动态拼接class属性,首次循环加active
        const liClass = isFirst ? 'role="presentation" class="active"' : 'role="presentation"';
        $('#tabs').append(`<li ${liClass}><a data-toggle="tab" id="tab_${jsonData[key].textName}" href="#panel_${jsonData[key].textName}">${jsonData[key].textName}<span id="count_${jsonData[key].textName}" class="countLabel"></span></a></li>`);
        // 首次渲染后修改标记
        isFirst = false;
    }
}

方法2:所有元素生成后统一给第一个元素加类

如果不想修改循环内的拼接逻辑,也可以在所有li生成完成后,通过jQuery选择器直接给第一个li添加active类,代码更简洁:

// 原有循环逻辑不变
for (var key in jsonData) {
    if (jsonData.hasOwnProperty(key)) {
        console.log(key + " -> " + jsonData[key].textName);
        $('#tabs').append('<li role="presentation" ><a data-toggle="tab" id="tab_'+jsonData[key].textName+'" href="#panel_'+jsonData[key].textName+'">'+jsonData[key].textName+'<span id="count_'+jsonData[key].textName+'" class="countLabel"></span></a></li>');
    }
}
// 新增代码:给第一个li加active类
$('#tabs li:first').addClass('active');

两种方法都可以实现需求,你可以根据自己的代码习惯选择。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 07:57:01