jQuery $()。每个而不是$ .each()

时间:2011-03-21 19:36:58

标签: jquery loops each typeerror

我正在使用jQuery的标准创作模式编写插件,使用方法执行不同的操作,并且我遇到了.each()的问题。

我从文档中了解$.each()$(selector).each()之间的差异,但我无法弄清楚如何克服我的问题......

在我的代码中,我有一个方法返回一个使用$(selector).data()存储的对象,我可以像这样运行$ .each():

$.each($(selector).maps('getdetails'), function(key, value){/* stuff here */});

然而,在jQuery可链接性的范围内,这不是它应该如何,我无法理解如何这样做:

$(selector).maps('getdetails').each(function(key, value){/* stuff here */});

对于用户的可链接性和易用性,后者是优选的。然而,我总是得到以下错误:

TypeError: $(selector).maps("getdetails").each is not a function

以下是变量对象中的相关方法:

getdetails: function(){
    return $(this).data('maps').details;
},

(是的,在你说之前,我知道这是不正确的JS,但正如我所说,它在我的代码中正确包装在变量{}中。)

有没有人知道我如何将这个对象操作为后一个.each()函数将迭代的jQuery对象?

2 个答案:

答案 0 :(得分:4)

我认为details是一个数组,这就是details.each无效的原因。您需要将details转换为jQuery.init对象(jQueried对象的地图),只需将其放入jQuery函数即可:

return $( $(this).data('maps').details );

答案 1 :(得分:0)

您是否忘记了'#'或'。'分别表示身份或班级?