我正在尝试遍历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