我对jQuery的扩展是出乎意料的

时间:2013-05-05 02:17:10

标签: javascript jquery

我正在使用一个方法扩展jQuery,使用给定的函数来查找给定的选择器,作为遍历这些兄弟姐妹的方法。

我这样做的原因是因为jQuery的next()不会继续遍历对象的兄弟,这就是我需要的。

(function ($) {
  $.fn.extend({
    findSibling: function (selector, fn) {
      var $this = $(this),
          $sibling = fn($this);
      if ($sibling.length === 0){
        console.log("No " + selector + " found.");
      } else if($sibling.is(selector)) {
        console.log(selector + " has been found!");
        return $sibling;
      } else {
        $sibling.findSibling(selector, fn);
      }
    }
  });
}(jQuery));

$next = $this.findSibling('.line', function (object) {
  return object.next();
});

即使函数找到我要找的东西,$ next仍未定义。

感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

       $sibling.findSibling(selector, fn);

应该是

       return $sibling.findSibling(selector, fn);