Method: Browser::DOM::Node#ancestors

Defined in:
opal/browser/dom/node.rb

#ancestors(expression = nil) ⇒ NodeSet

Get an array of ancestors.

Passing a selector will select the ancestors matching it.

Parameters:

  • (defaults to: nil)

    the selector to use as filter

Returns:



190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
# File 'opal/browser/dom/node.rb', line 190

def ancestors(expression = nil)
  return NodeSet[] unless parent

  parents = [parent]

  while parent = parents.last.parent
    parents << parent
  end

  if Document === parents.last
    parents.pop
  end

  if expression
    parents.select! { |p| p =~ expression }
  end

  NodeSet.new(parents)
end