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

REST API驱动的Select下拉筛选器筛选时隐藏所有列表项问题求助

问题根因

你筛选逻辑是通过[data-season='xxx']属性选择器匹配列表项,但你渲染.listItem元素时,没有给元素绑定对应的data-season自定义属性,导致筛选时找不到任何匹配元素,所有列表项被隐藏。

修复方案

1. 核心修改:渲染列表项时补充自定义属性

生成listItem的代码中,给div节点加上data-season属性,属性值为当前项的category_name即可匹配筛选逻辑。

2. 可选优化:下拉框新增「全部」默认选项

符合初始加载展示所有列表项的通用交互习惯。

修复后完整JS代码

var data = [{
        "category_name": "1",
        "title": "One One",
        "more": [{
            "details": "some details"
        }]
    },
    {
        "category_name": "1",
        "title": "One Two",
        "more": [{
            "details": "some details"
        }]
    },
    {
        "category_name": "2",
        "title": "Two One",
        "more": [{
            "details": "some details"
        }]
    },
    {
        "category_name": "3",
        "title": "Three One",
        "more": [{
            "details": "some details"
        }]
}];


let listItems = "",
    // 新增默认全部选项
    categoryAll = "<option value=''>全部</option>";

for(var i = 0;i < data.length; i++) {

    var title = data[i].title,
        category_name = data[i].category_name;

    // 给列表项补充data-season属性
    listItems += "<a onclick='createAVideoContainer(" + i + ")'><div class='listItem' data-season='"+category_name+"'><p>" + title + "</p></div></a>";

    if (categoryAll.indexOf("<option value='" + category_name + "'>" + category_name + "</option>") == -1) {
        categoryAll += "<option value='" + category_name + "'>" + category_name + "</option>";
    }
}

$("#listitem").html(listItems);
$(".filter_category_name").append(categoryAll);

var filtersObject = {};

$(".filter").on("change",function() {
    var filterName = $(this).data("filter"),
        filterVal = $(this).val();
    
    if (filterVal == "") {
        delete filtersObject[filterName];
    } else {
        filtersObject[filterName] = filterVal;
    }
    
    var filters = "";
    
    for (var key in filtersObject) {
          if (filtersObject.hasOwnProperty(key)) {
            filters += "[data-"+key+"='"+filtersObject[key]+"']";
          }
    }
    
    if (filters == "") {
        $(".listItem").show();
    } else {
        $(".listItem").hide();
        $(".listItem").filter(filters).show();
    }
});

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 05:24:01