jQuery имеет прекрасный, хотя и несколько неверно названный метод, называемый closest () , который поднимается вверх по Дерево DOM ищет подходящий элемент. Например, если у меня есть этот HTML:
Yay
Предполагая, что И это чисто вернет "undefined", если отсутствует какой-либо элемент таблицы или его атрибут src. Привыкнув к этому в Javascriptland, я хотел бы найти что-нибудь эквивалентное для Nokogiri в Rubyland, но самое близкое, что я смог придумать, - это явно неэлегантный хак с использованием ancestors () : Тернар необходим, потому что сначала возвращает nil, если вызывается для пустого массива. Идеи получше? элемент
установлен на
, тогда я могу вычислить значение src
как this:
element.closest('table')['src']
ancestors = element.ancestors('table')
src = ancestors.any? ? first['src'] : nil