【发布时间】:2020-06-07 22:48:28
【问题描述】:
使用 javascript 或 jquery,如何增加具有相同 html 类的项目的 html ID。例如,我有 3 个带有“form_id”类的元素。我希望每个元素的 id 显示为
- form-0-id
- form-1-id
- form-2-id
我正在尝试这个 - 但它不起作用:
var list = $(".formset_id");
var q = 0
for (var item in list) {
var newID='form'+q+'-id';
$(this).attr('id',newID);
q++;
}
有什么想法吗?
【问题讨论】:
-
问题是你的
for循环中的this是窗口或文档,而不是表单元素 -
我使用了我所使用的,因为您的编码风格似乎暗示您必须支持旧版浏览器,但我同意@slappy 和他的最终 ES6 方法,它更简洁且不依赖于关于不必要地使用非本地 API (jQuery)。我只是不同意他暗示
.forEach在某种程度上是一种低等的方法。它既不降低可读性,也不降低性能(实际上 forEach 将利用 V8 中的本机级优化,而 for-of+entries 还没有获得这些优化)。 -
@user120242:我不确定我是如何暗示
.forEach是劣等的。是不是因为我的底层解决方案使用了for-of?我没有采取最后一步在底部发布.forEach解决方案,因为我已经在顶部演示中使用它作为我的主要解决方案。大多数情况下,我试图通过消除 jQuery 和缩短代码的过程来引导 OP。希望能澄清我的回答。我的主要偏见是尽可能地使用本地代码而不是大型抽象。 -
它们都是有效的,因为 OP 没有指定任何内容。所有这些都是不必要的,因为它们已经作为重复问题的答案发布了。
标签: javascript html jquery