Цепные селекторы в jQuery - PullRequest
       24

Цепные селекторы в jQuery

1 голос
/ 09 февраля 2012

У меня есть форма Rails, в которой есть несколько таблиц. В одной из таблиц есть интересующий выпадающий элемент, к которому можно обратиться по его идентификатору, например:

$('#contract_contract_phases_attributes_0_ngl_price_term')

Я показываю / скрываю другой элемент на основе значения, выбранного в нем, что не проблема. Проблема в том, что строка заголовка таблицы для элемента имеет элемент 'th', который мне нужно показать / скрыть вместе с ним. Я могу добраться до родительского элемента таблицы так:

$('#contract_contract_phases_attributes_0_ngl_price_term').closest('table')

Однако я пытаюсь нацелить элемент заголовка (th), который нужно скрыть, присвоив ему класс price_term. Поэтому я пытаюсь еще больше сузить ближайший элемент к этому элементу следующим образом:

$('#contract_contract_phases_attributes_0_ngl_price_term').closest('table th.price_term')

Однако это не работает. Есть ли способ, которым я могу нацелить этот элемент заголовка?

Ответы [ 2 ]

2 голосов
/ 09 февраля 2012

.closest() смотрит только на родителя, дедушку, бабушку и дедушку и т. Д. - в DOM идет только вверх.

.find() смотрит только на детей, внуков и т. Д.через DOM.

Таким образом, вы хотите подняться (.closest()) к столу и вниз (.find()) к th.price_term:

$('#contract_contract_phases_attributes_0_ngl_price_term')
    .closest('table')
    .find('th.price_term')
1 голос
/ 09 февраля 2012

Это работает?

$('#contract_contract_phases_attributes_0_ngl_price_term').closest('table').find('th.price_term')
...