如何从具有可链接性的 jQuery 插件的方法返回对象数组?
Posted
技术标签:
【中文标题】如何从具有可链接性的 jQuery 插件的方法返回对象数组?【英文标题】:How to return an array of objects from a method of a jQuery plugin with chainability? 【发布时间】:2011-07-03 11:17:30 【问题描述】:我正在使用插件方法“getSomeWhat”编写一个名为“myplugin”的 jQuery 插件。此方法可能会返回一些集合,例如“.someclass”中元素的 attr('id')。 我想保持可链接性,但我在网上找不到。
请告知如何实现。
$(".someclass").myplugin('getSomeWhat').each(function()
//some stuff for each somewhat
);
谢谢!
威廉·崔
【问题讨论】:
【参考方案1】:您不能返回非 jQuery 对象并保留可链接性。仅仅是因为可链接性取决于 jQuery 对象。当然,完全可以返回一个 jQuery 对象并允许链接到该对象,但这有点违背了查找方法的目的。
如果您希望迭代返回的集合,您可以这样完成:
var data = $(".someclass").myplugin('getSomeWhat');
$.each(data, function(i, v)
//i is index, v is value (if using object props, i is the propName
);
这使您成为 jQuery 通用迭代器。它可以无缝地遍历数组和对象。
【讨论】:
我不能将集合包装到一个 jQuery 对象中吗? 这真的取决于用例,你到底想要完成什么?你想遍历插件返回的集合吗? 更新了我的答案,为迭代提供了解决方案。以上是关于如何从具有可链接性的 jQuery 插件的方法返回对象数组?的主要内容,如果未能解决你的问题,请参考以下文章
stickyNavbar.js:具有智能锚点链接突出显示的奇妙粘性导航jQuery插件