我正在嘗試遍歷DOM到最近的DIV。下面的標記如下。jQuery nearest(),parents()和parent()會影響同一DOM級別的多個元素
<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,因爲它一般匹配DIV。
但是,當使用parents()
或parent()
它不像其他DIV不是一個點擊錨的父親那樣清晰。但是我也可以看到它可能只是在DOM中的這個級別再次匹配DIV。儘管看起來像parents()
和parent()
應該在匹配時保持更多的上下文上下文。
你能證明你的點擊事件? – 2012-03-15 18:37:37