如何为JS动态生成的每个<td>标签设置互不重复的唯一id?
实现方案
直接复用forEach回调自带的索引参数i,将索引值拼接到id属性值中即可生成唯一id,修改后的代码如下:
var perrow = 1; array.forEach((value, i) => { // 如果ore对应的td也需要唯一id,可使用同样的拼接逻辑,例:id="ore${i+1}" myTable += `<td id="ore${i+1}">${value}</td>`; // 数组索引从0开始,i+1即可实现1、2、3的后缀递增顺序 myTable += `<td id="introdu${i+1}" > </td>`; var next = i + 1; if (next%perrow==0 && next!=array.length) { myTable += "</tr><tr>"; } });
原理解释
forEach遍历数组时的第二个参数i是当前元素的数组索引,从0开始依次递增,天然具备唯一性- 用模板字符串的
${}语法把计算后的序号拼入id字符串,就能生成introdu1、introdu2这类不重复的id值 - 后续如果调整
perrow参数为大于1的数值,该逻辑依然有效,索引会跟着遍历顺序自动递增,不需要额外修改代码
内容的提问来源于stack exchange,提问作者Acciu Cristian
相关产品推荐
相关产品推荐

