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

使用jQuery Ajax筛选展示position为2(教练)的用户列表实现求助

问题排查与修正方案

核心错误原因

  • 你当前将position == 2的判断逻辑写在了遍历用户数组的外层,后端接口返回的data是全部用户组成的数组对象,本身没有position属性,外层的if条件永远不成立,自然不会渲染任何数据
  • 筛选逻辑需要作用在单个用户对象上,要放在遍历内部或者提前对数组做过滤

修正后的实现代码

我们可以先对返回的用户数组做过滤,拿到所有position为2的教练用户后再遍历渲染,逻辑更清晰易读:

$(document).ready(function () {
    // 调用ajax从后端获取所有员工数据并展示在表格中
    $.ajax({
        type: "GET",
        url: "http://localhost:8080/api/korisnik",
        dataType: "json",
        success: function (data) {
            // 过滤出position为2的教练用户
            const coachList = data.filter(user => user.position === 2);
            // 遍历过滤后的教练列表生成表格行
            for (let responseElement of coachList) {
                let row = "<tr>";
                row += "<td>" + responseElement.ime + "</td>";
                row += "<td>" + responseElement.prezime + "</td>";
                row += "<td>" + responseElement.email + "</td>";
                row += "<td>" + responseElement.position + "</td>";
                let btn = "<button class='btnSeeMore' data-id=" + responseElement.id + ">See More</button>";
                row += "<td>" + btn + "</td>";
                btn = "<button class='btnDelete' data-id=" + responseElement.id + ">Delete</button>";
                row += "<td>" + btn + "</td>";
                row += "</tr>";
                $('#responseElement').append(row);
            }
            console.log("SUCCESS:\n", data);
        },
        error: function (data) {
            console.log("ERROR:\n", data);
        }
    });
});

可选的等价实现

如果你不想提前做数组过滤,也可以直接在遍历原数组的环节增加判断,效果完全一致:

for (let responseElement of data) {
    // 仅当当前用户是教练时才渲染行
    if (responseElement.position === 2) {
        // 原有生成行、插入行的逻辑不变
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.18 01:54:07