聚合jQuery对象?

时间:2010-09-01 14:51:51

标签: javascript jquery

我正在创作一个插件,插件需要做一些像聚合一组jQuery对象的事情。如何做到这一点?

例如:

<p><a>...</a></p>
<p><a>...</a></p>

使用

(function( $ )
{
    $.fn.myfunc = function( settings )
    {

    };
})(jQuery);

在使用$('p')。myfunc()调用的插件的上下文中,我如何返回所有元素,例如?我返回的元素不一定包含在所选元素中或附近,因为这只是一个例子。

1 个答案:

答案 0 :(得分:1)

jQuery也接受一个数组,因此您可以构建自己的节点堆栈并从中创建一个jQuery对象。

示例:

(function( $ )
{
    $.fn.myfunc = function( settings )
    {
        var stack = [];
        stack.concat(this.find('a').toArray());
        stack.concat($('a.hot-links').toArray());
        return $($.unique(stack));
    };
})(jQuery);

或者简单地说:

return this.find('a'); // as return result of plugin

另外,请查看.pushStack(),它允许您向已存在的jQuery对象添加元素。