gpt4 book ai didi

jquery - 添加类的 id

转载 作者:行者123 更新时间:2023-12-01 08:04:23 25 4
gpt4 key购买 nike

我想获取某个类的所有元素,并向它们添加连续的 id,并将它们放入一个数组中。这是我到目前为止所拥有的。

(function(){
for(var i = 1; i<$(".slideshow").length; i++){
$(".slideshow").attr("id", "slides-" + i + "")
}
});

发生的情况是它同时设置所有 .slideshow 类的 id,使它们全部等于最后一个(实际上是倒数第二个,稍后要解决的错误)

如何设置每个类(class)的 id?如果我执行每个循环:

$(".slideshow").each(function(){
for(var i = 1; i<$(".slideshow").length; i++){
$(".slideshow").attr("id", "slides-" + i + "")
}
});

我该如何使用“这个”?

最佳答案

作为回调函数传入.each()有两个参数:第一个是集合中元素的索引,第二个是元素本身,你可以这样写:

$(".slideshow").each(function(i, el){
el.id = 'slides-' + i;
});

由于 id 属性已被普遍支持,因此无需在此处使用 $(el).attr('id', ...) 构造。

请注意,此处幻灯片的索引从 0 开始。如果您想像原始代码(基于 1)一样执行此操作,请使用:

    el.id = 'slides-' + (i + 1);

i + 1 子表达式周围的括号至关重要,因为这些应该添加,而不是串联。

如果没有括号,表达式将被处理为 ('slides' + i) + 1。第一个 + 符号位于 String 和 Number 之间,因此将被视为连接运算符,并返回一个 String 。因此,下一个 + 也成为一个 concat 操作 - 为您提供 'slides-91' (而不是预期的 'slides-10')例如,i 是 9。

如果您需要一个数组作为结果,只需使用 .toArray() jQuery 对象的方法:

var slideShowNodes = $(".slideshow").each(function(i, el){
el.id = 'slides-' + i;
}).toArray();

关于jquery - 添加类的 id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17641849/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com