我正在使用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对象?
答案 0 :(得分:4)
我认为details
是一个数组,这就是details.each
无效的原因。您需要将details
转换为jQuery.init
对象(jQueried对象的地图),只需将其放入jQuery
函数即可:
return $( $(this).data('maps').details );
答案 1 :(得分:0)
您是否忘记了'#'或'。'分别表示身份或班级?