jQuery には、DOM ツリーをたどって一致する要素を探す、closest()と呼ばれるやや不適切な名前のメソッドがあります。たとえば、次の HTML があるとします。
<table src="foo">
<tr>
<td>Yay</td>
</tr>
</table>
element
が に設定されていると仮定すると、次のよう<td>
に の値を計算できます。src
element.closest('table')['src']
テーブル要素またはその src 属性のいずれかが欠落している場合、それは「未定義」をきれいに返します。
Javascriptland でこれに慣れてきたので、Rubyland で Nokogiri に相当するものを見つけたいと思っていますが、私が思いついた最も近いものは、この明らかに非エレガントなハックです。
ancestors = element.ancestors('table')
src = ancestors.any? ? first['src'] : nil
空の配列で呼び出された場合、最初に nil が返されるため、3 進数が必要です。より良いアイデア?