编辑-修复自己造成的错误。
我有一组图片和他们的网址。他们都在同一个班里。我想根据它们的索引位置为图像指定一个新的标题。例如,图像1-3应该是“辐射花”,4-6将是光荣的灌木。
$('.flower').each(function (index, value) {
console.log(index + ':' + $(this).attr('title'));
if (index === 2)) {
$('.flower').attr('title',"Radiant Flowers");
}
});
控制台显示了以下输出:
所以当我检查元素时,标题都变成了辐射花。我注意到的是,当我能够让它正常工作时,代码会改变所有的值,而不是我希望影响的值。有办法这样做吗?
发布于 2017-02-21 22:43:41
您的parseInt有一个错误的论点:‘索引’>2您应该将它更改为parseInt(索引)> 2,我认为.
关于实际问题:循环遍历元素,检测要修改的元素.然后用类“花”修改所有元素。
做这件事的好方法是把它放在你的“if”中:$( this ).attr('title',“”);
原因是$('.flower')将选择CSS类“花”的所有元素,但只需要更改当前元素。这就是为什么$(这个)应该起作用的原因。更好的是,您可以使用$(value),因为"value“是指向foreach循环中当前元素的变量。
发布于 2017-02-22 15:00:24
这里发生的是,这一行:$('.flower').attr('title',"Radiant Flowers");
实际上用类flower
来更改元素的所有,而不是您想要更改的元素。
为了解决这个问题,在您的代码中,更改以下内容:
if (index === 2)) {
$('.flower').attr('title',"Radiant Flowers");
}
至
if (index > 2)) {
$(this).attr('title',"Radiant Flowers");
}
https://stackoverflow.com/questions/42379368
复制相似问题