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

jQuery遍历对象数组追加缩略图时data-index索引不生效问题求助

你代码的问题在于 ${} 是ES6模板字符串的插值语法,只有用**反引号()**包裹的字符串才会解析这个语法,你当前用单引号包裹字符串,${index}`会被当成普通文本输出,不会替换成变量值。

方案1:使用模板字符串(推荐)

直接用反引号包裹整个HTML字符串,既可以正常解析变量插值,也不需要写多余的字符串拼接符号:

let data = [avenue, school, street, block];
data.forEach((item, index) => {
  // 反引号包裹,${} 会自动替换为对应变量值
  $('.thumbsbox').append(`<img class="thumbnail" data-index="${index}" src="${item.photo}">`);
});

小提示:forEach遍历的第一个参数item就是当前循环的数组元素,不需要额外通过data[index]取值,直接用item.photo更简洁。

方案2:使用普通字符串拼接

如果需要兼容不支持ES6的老旧环境,按照你拼接src的方式把index拼进去即可:

let data = [avenue, school, street, block];
data.forEach((item, index) => {
  let imgsrc = item.photo;
  $('.thumbsbox').append('<img class="thumbnail" data-index="'+ index +'" src="'+ imgsrc +'">');
});

后续获取索引时可以直接用jQuery的data()方法,会自动返回数值类型的索引:

$('.thumbnail').on('click', function() {
  let currentIndex = $(this).data('index');
  // 后续业务逻辑
});

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 20:36:02