Когда пользователь меняет select
мне нужно очистить каждый select
который появляется после этого. Так, например, если вы меняете среднюю, освобождается только последний select
.
<div>
<select></select>
</div>
<div>
<select></select>
</div>
<div>
<select></select>
</div>
Я пробовал это, но не мог заставить его работать:
$("select").change(function () {
$(this).parent().nextAll("div select").empty();
});
Функция .nextAll() возвращает коллекцию только следующих братьев и сестер. Аргумент селектора может только фильтровать эту коллекцию.
Итак, чтобы сделать то, что вы пытаетесь сделать, после того, как вы найдете все следующие divs
, вы должны использовать функцию.children(), чтобы получить элементы select
которые являются его прямыми потомками (или .find() для достижения все потомки не только прямые).
$("select").change(function () {
$(this).parent().nextAll("div").children("select").empty();
});