code: function (scope, selector, isRoot) {
        // It may surprise you to learn this is exactly what JQuery does
        // TODO: Avoid all this wrapping and unwrapping
        return PredicateFilter.ancestors(scope, function (e) {
          return Selectors.is(e, selector);
        }, isRoot);
      }
docs: For all of the following:  jQuery does siblings of firstChild. IE9+ supports scope.dom().children (similar to Traverse.children but elements only). Traverse should also do this (but probably not by default).