Вы должны использовать closest
, потому что parents
не даст ожидаемого результата, если вы работаете с несколькими элементами. Например, скажем, у вас есть это:
<div id="0">
<div id="1">test with <b>nested</b> divs.</div>
<div id="2">another div.</div>
<div id="3">yet <b>another</b> div.</div>
</div>
и вы хотите добавить класс к элементам div, у которых элемент <b>
является их непосредственным потомком (т. Е. 1 и 3). Если вы используете $('b').parents('div')
, вы получите Div 0, 1 и 3. Если вы используете $('b').parents('div:first')
, вы получите только Div 1. Чтобы получить 1 и 3, но не 0, вы должны использовать $('b').closest(elem)
.