如何从具有可链接性的 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 插件的方法返回对象数组?的主要内容,如果未能解决你的问题,请参考以下文章

如何调用jquery插件的方法

stickyNavbar.js:具有智能锚点链接突出显示的奇妙粘性导航jQuery插件

第2186期使用浏览器开发工具测试网站可访问性的七种方法

具有 i18n(排序规则)支持的 JQuery 可过滤插件

如何在不损害可访问性的情况下删除 Firefox 链接中的虚线轮廓?

具有可访问性的 UITableViewCell 中的 UICollectionView