首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >jquery中的.each()方法

jquery中的.each()方法
EN

Stack Overflow用户
提问于 2011-08-20 03:02:33
回答 4查看 170关注 0票数 1

我需要将数据添加到每个元素之后递增的一组图像中。Jquery in Action的代码如下:

代码语言:javascript
运行
复制
settings.thumbnails$ = this.filter('img');
settings.thumbnail$.each(function(n) {
$(this).data('photo-index',n);

书中说,使用.each()将为记录其在列表中位置的每个元素添加一个惟一的数字。我不明白为什么会这样,因为附加到‘n -index’的值在每次迭代中都是一样的……

有没有人看到我错过了什么?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-08-20 03:04:51

代码语言:javascript
运行
复制
var data = ['foo','bar','foobar','baf','woot'];
$.each(data,function(iterator,element){
  console.log(iterator+'. '+element);
});

您没有注意到.each在函数调用中有两个可以接受的参数。

因此,要将其应用于您的代码:

代码语言:javascript
运行
复制
settings.thumbnails$ = this.filter('img');
settings.thumbnails$.each(function(i,e) { // add back the iterator (i)
  $(this).data('photo-index',i); // reference it here
});

您还在.each调用中引用了"settings.thumbnail$“(单数),这可能是问题所在,但我不知道您要做什么。

或者,您可以使用.each()并使用它的本机索引进行赋值:

代码语言:javascript
运行
复制
settings.thumbnails$.each(function(i,e){
  $(this).data('photo-index',$(this).index());
});
票数 2
EN

Stack Overflow用户

发布于 2011-08-20 03:05:17

jQuery each()将用列表中当前迭代的索引填充第一个参数,因此将为settings.thumbnail$的每个元素分配一个惟一的n$(this).data('photo-index', n)

票数 0
EN

Stack Overflow用户

发布于 2011-08-20 03:06:43

在您的函数中,this关键字引用您正在迭代的单个元素。n将成为索引。因此,如果您有3个img元素,该函数将被调用3次,n从0到2,并且每个当前元素都绑定到this。您还可以通过函数的第二个参数访问该元素:function(n, element) { $(element).data("photo-index", n); }

文档是here

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7126171

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档