DOMを最も近いDIVまでトラバースしようとしています。以下のマークアップは以下のとおりです。
<div>
<span>
<a class="anchor">Text</a>
</span>
</div>
<div>
<span>
<a class="anchor">Text</a>
</span>
</div>
<div>
<span>
<a class="anchor">Text</a>
</span>
</div>
次のいずれかを使用する場合:
$('.anchor').closest('div').css('background-color', 'red');
$('.anchor').parents('div').css('background-color', 'red');
$('.anchor').parent().parent().css('background-color', 'red');
次のようにすべてのDIVに影響します。
<div style="background-color: red">
<span>
<a class="anchor">Text</a>
</span>
</div>
<div style="background-color: red">
<span>
<a class="anchor">Text</a>
</span>
</div>
<div style="background-color: red">
<span>
<a class="anchor">Text</a>
</span>
</div>
真ん中のアンカーをクリックする場合は、次のようにします。
<div>
<span>
<a class="anchor">Text</a>
</span>
</div>
<div style="background-color: red">
<span>
<a class="anchor">Text</a>
</span>
</div>
<div>
<span>
<a class="anchor">Text</a>
</span>
</div>
closest()
一般的にDIVに一致しているので、クリックされたアンカーに最も近いDIVとして3つのDIVすべてに一致する理由がわかります。
ただし、使用する場合、parents()
またはparent()
他のDIVがクリックアンカーの親ではないほど明確ではありません。しかし、DOMのそのレベルでDIVと一般的に一致している可能性がある場所もわかります。マッチングするときは、コンテキストコンテキストのように見えparents()
、維持する必要がありますが。parent()