Предназначайтесь для всех следующих детей родного брата

0

Когда пользователь меняет select мне нужно очистить каждый select который появляется после этого. Так, например, если вы меняете среднюю, освобождается только последний select.

<div>
    <select></select>
</div>
<div>
    <select></select>
</div>
<div>
    <select></select>
</div>

Я пробовал это, но не мог заставить его работать:

$("select").change(function () {
  $(this).parent().nextAll("div select").empty();
});
Теги:

1 ответ

5
Лучший ответ

Функция .nextAll() возвращает коллекцию только следующих братьев и сестер. Аргумент селектора может только фильтровать эту коллекцию.

Итак, чтобы сделать то, что вы пытаетесь сделать, после того, как вы найдете все следующие divs, вы должны использовать функцию.children(), чтобы получить элементы select которые являются его прямыми потомками (или .find() для достижения все потомки не только прямые).

$("select").change(function () {
  $(this).parent().nextAll("div").children("select").empty();
});
  • 0
    Ах, это правильно. Хорошее объяснение!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню