代码之家  ›  专栏  ›  技术社区  ›  Stefan Kendall

聚合jquery对象?

  •  0
  • Stefan Kendall  · 技术社区  · 14 年前

    我正在编写一个插件,该插件需要做一些类似于聚合一组jquery对象的工作。怎么做到的?

    例如:

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

    (function( $ )
    {
        $.fn.myfunc = function( settings )
        {
    
        };
    })(jQuery);
    

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

    1 回复  |  直到 14 年前
        1
  •  1
  •   BGerrissen    14 年前

    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对象添加元素。