2015-12-16 1 views
1

У меня есть сценарий, который будет оценивать все переключатели/флажок в событии изменения. Если хотя бы один выбранный элемент с пользовательским атрибутом «terminator», он скроет все следующие разделители, у которых есть класс «questionPanel».Как найти разделители, использующие несколько групп в jQuery?

Ниже приводится код, который делает поиск следующего делителя

control.closest(".questionPanel").nextAll(".questionPanel").addClass(className).hide(); 

Теперь мне нужно добавить еще одну вещь, чтобы искать и, если возможно скрыть.

Мне нужно найти любой fieldset, который находится в текущем div с классом «questionPanel»), тогда я хочу скрыть все следующие «fieldset».

Я попытался добавить строку вроде так, но это не делать ничего

control.closest(".questionPanel").nextAll("fieldset").addClass(className).hide(); 

Как я могу найти все следующие fieldsets и скрыть их?

Я создал скрипку, чтобы показать вам сценарий в действии, и он находится на этой ссылке https://jsfiddle.net/8yf0v3xt/11/

ответ

1

Метод .nextAll() будет выбрать следующие одноуровневые элементы. Поскольку элементы fieldset не являются братьями и сестрами с элементом .questionPanel, ничего не выбрано.

Как я могу найти все следующие поля и скрыть их?

Если вы хотите, чтобы выбрать следующие fieldset элементы, вам нужно выбрать ближайший .survey-control-fieldset элемент, а затем выберите следующие fieldset братья и сестры:

Updated Example

control.closest('.survey-control-fieldset').nextAll('fieldset').addClass(className).hide(); 
+0

Я не уверен, что я объяснил что мне нужно правильно. но мне нужно скрыть весь набор полей после существующего набора полей внутри текущего div с классом questionPanel, но не со всеми полями. код, кажется, скрывает неправильную вещь –

+0

@MikeA .. Думаю, я понимаю сейчас .. см. обновление. –

+0

Спасибо, что сделал это :) –

Смежные вопросы