从jQuery插件返回一个新的jQuery集合 - 使用$ .add?

时间:2016-02-19 17:24:50

标签: jquery jquery-plugins

previous question之后,我正在编写一个jQuery插件(我的第一个!)作为查找任何元素的最快捷方式&#39; s&#39; s与选择器匹配的元素(在我的情况下,任何标题<h1> - <h6>) - &#39;最近的&#39;意思是上面DOM中的某个地方,在页面的上方。

阅读了article in the jQuery learning centre以及一些相关的StackOverflow帖子后,我已经做到了这一点:

(function ($) {
    $.fn.nearestAbove = function (selector) {
         var $new = $();
         this.each( function () {
             var $header = $(this).parentsUntil("*:has(" + selector + ")").prevUntil(selector).andSelf().first().prev();
             $new.add($header);
         });
         return $new;
     };
 }(jQuery));

我理解.add()可以用来将jQuery集合添加到一起 - 所以我不知道为什么上面的插件不起作用 - 它只返回一个空的jQuery对象。 我做错了什么?

这里是plunker

帮助升值!

1 个答案:

答案 0 :(得分:0)

我弄清楚了我的错误。

$new = $new.add($header);