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

如何在点击Knockout表格行时将JSON中的ID传入函数

解决Knockout表格行点击获取对应ID的问题

你其实已经做对了关键的一步——通过bind($data)把当前行的数据对象传递给了redirectDetails函数,现在只需要从这个传入的对象里提取ID就可以了,分两种情况处理:

情况1:ID是普通属性(非可观察对象)

如果你的mainData里的每条数据是普通JS对象(比如直接从JSON解析而来,没有用Knockout的observable包装),那么直接访问data.ID就能拿到ID值:

function redirectDetails(data) {
    const rowId = data.ID;
    alert(`当前点击行的ID是:${rowId}`);
    // 这里可以添加你的跳转逻辑,比如:
    // window.location.href = `/detail-page?id=${rowId}`;
}

情况2:ID是Knockout可观察对象

如果你的ID是用ko.observable()定义的响应式属性,那么需要调用无参的ID()来获取它的当前值:

function redirectDetails(data) {
    const rowId = data.ID();
    alert(`当前点击行的ID是:${rowId}`);
    // 跳转逻辑示例
}

可选:直接在绑定中传递ID参数

如果你不想传递整个数据对象,也可以直接在click绑定里把ID作为参数传进去,代码会更直观:

普通ID属性的写法:

<tr style="cursor:pointer;" data-bind="click: () => redirectDetails($data.ID)">

可观察ID属性的写法:

<tr style="cursor:pointer;" data-bind="click: () => redirectDetails($data.ID())">

对应的函数就可以直接接收ID参数:

function redirectDetails(rowId) {
    alert(`当前点击行的ID是:${rowId}`);
}

最后检查一下你的mainData数组中的每个元素是否确实包含ID属性,这是能正确获取值的前提哦~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 04:27:14