如何为JavaScript动态渲染的表格td元素添加自定义id与data属性
实现方案
完全可以为描述列的数据单元格添加你需要的唯一标识符,只需要修正变量引用和语法小问题即可。
核心修改逻辑
- 描述列对应的是td集合里索引为1的节点:函数内ii初始值为0,第1个td渲染分类名称后ii自增为1,正好对应承载
values.description的单元格 - 你写的标识符模板里用了不存在的
obj变量,直接替换为入参values取id即可——传入的序列化Python字典本身就携带数据主键id字段 - 你写的属性末尾多了一个冗余双引号,需要删除避免HTML渲染异常
修改后可直接用的代码
将原函数中渲染描述列的代码替换为如下内容:
function refresh_row(row, values) { var tds = $(row).children('td'); var ii = 0; $(tds[ii]).html(values.type.name); ii++; // 给描述列td加唯一标识,同时渲染内容 $(tds[ii]) .attr('id', `result-${values.id}`) .attr('data-testid', values.id) .html(values.description); ii++; $(tds[ii]).html(values.company); ii++; $(tds[ii]).html(values.place); ii++; }
补充提示
- 如果运行时提示id不存在,先检查后端序列化输出的JSON结构,确保主键id字段被正常返回
- jQuery的
.attr()方法会自动覆盖同名属性,重复调用渲染函数也不会出现属性重复叠加的问题 - 后续要加编辑按钮时,直接在
.html()的参数里拼接按钮DOM即可,比如可以写成.html(${values.description})
内容的提问来源于stack exchange,提问作者Swantewit
相关产品推荐
相关产品推荐

