Also you're checking if the current element is a direct child of the parent

    Array.prototype.some.call(this.rootElement.children, function(el) { return el === element; })

Then checking if it matches the selector, will this only work for simple selectors, what about

    > .bla span

Thats why in my branch (https://github.com/orangemug/ftdomdelegate/compare/scoped-selector), I let the browser do all the work.